home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / Information / Gestalt Selectors 2.9 / gestalt-selectors-29.etx next >
Encoding:
Text File  |  1995-05-01  |  231.0 KB  |  5,499 lines  |  [TEXT/R*ch]

  1. Gestalt Selectors List 2.9
  2. ==========================
  3. First published: 12 October 1992, 13:15 CET (GMT+1)
  4. Last version:     2 March 1995, 21:40 CET (GMT+1)
  5. Previous update: 23 April 1995, 20:00 CET (GMT+2, DST)
  6. Last modified  :  1 May 1995, 20:45 CET (GMT+2, DST)
  7.  
  8. This document lists all selectors for use with the Gestalt Manager known to
  9. the editor. These can include selector codes installed by Apple (system)
  10. software or by software from third and so called "fourth" parties (your
  11. software?).
  12. The information in this list is useful for programmers and other people who
  13. can use the Gestalt Manager with their software (i.e. Apple Guide) perhaps
  14. even using externals (i.e. HyperCard, 4th Dimension etc.).
  15.  
  16. This file can be best viewed with a mono-spaced font like Monaco. Because
  17. it is wrapped as setext you can use several utilities to index and read it.
  18. For the Macintosh you can use Easy View and on a UNIX system sv (setext
  19. viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu
  20. (or its mirrors!), archived respectively as:
  21.      ftp://sumex-aim.stanford.edu/info-mac/text/easy-view-261.hqx
  22.      ftp://sumex-aim.stanford.edu/info-mac/text/setext-viewer-05-unix.uu
  23.  
  24. A single question mark indicates an uncertainty regarding the information
  25. in front of the question mark. Three question marks indicate complete
  26. absence of the information.
  27. See for more information about this list the chapters at the end.
  28.  
  29. Contents
  30. --------
  31.     Gestalt Selectors List
  32.       Contents
  33.       Contributions
  34.       Changes Overview
  35.       Wish List
  36.     Gestalt Selector Codes
  37.       Apple System Software (A-F)
  38.       Apple System Software (G-L)
  39.       Apple System Software (M-Q)
  40.       Apple System Software (R-Z)
  41.       Apple Additional Software
  42.       Third Parties Software
  43.     Unknown Gestalt Selector Codes
  44.       Apple Software
  45.       Third Parties Software
  46.     Gestalt Manager Calls
  47.       Gestalt Manager Routines
  48.       Gestalt Value Routines
  49.       Undocumented Gestalt Manager Routines
  50.     Kilo-liners
  51.       Direct Gestalt Calls
  52.       Direct GestaltValue Calls
  53.       GestaltSelectorZero
  54.       GestaltBitTest
  55.       Call Gestalt Function Direct
  56.     Reports
  57.       Accessing the Gestalt Manager
  58.       AppleShare File & Print Server selector codes
  59.       AppleTalk
  60.       Copy protection using Gestalt
  61.       Environs & SysEnvirons
  62.       Executor Mac-emulator
  63.       Gestalt Apple Event
  64.       Gestalt Applications
  65.       GestaltValue
  66.       GestaltValue & CodeWarrior Problem
  67.       Glue code
  68.       Machine Names
  69.       Macintosh Application Environment
  70.       Macintosh Clones
  71.       Modern Memory Manager
  72.       PPC Libraries
  73.       QuickTime
  74.       RAM Doubler
  75.     General Info
  76.       System Managers
  77.       Gestalt Problems
  78.       History
  79.       Abbreviations
  80.       Sources
  81.     Definitions and Format
  82.       Use in Language
  83.       Definitions
  84.       Format Selector Entry
  85.       Format Version Numbers
  86.     About this list
  87.       Availability
  88.       Acknowledgements
  89.       Legal Stuff
  90.       Editor's Address
  91.  
  92. Contributions
  93. -------------
  94. This section lists the people who contributed information which is now
  95. included with this version of the list.
  96.  
  97. ===========================================================================
  98. Contributions to the selector sections
  99. ===========================================================================
  100. Person                 Software                Selector(s) added/changed
  101. ---------------------------------------------------------------------------
  102. Anonymous              QuickDraw 3D ext?       qd3d
  103. Lawrence D'Oliveiro    QuickDraw GX            grfx, pmgr, qdgx
  104. Andy Fyfe              System (enablers)       mach
  105. John Mancino           Finder                  fndr
  106.                        Open Transport          ot  , otan
  107.                        System (enablers)       aslm, mach
  108. Mark Nagata            Aladdin Desktop Tools
  109.                          Desktop Makeover cp   YuHu
  110.                          Desktop Shortcut cp   Cut!
  111.                          Desktop SpeedBoost cp Info, YaHu, YoHo
  112.                        Now Utilities
  113.                          Now FolderMenus cp    FMnu
  114.                          Now QuickFiler Extension ext
  115.                                                NCex
  116.                          Now Startup Manager cp
  117.                                                NWin
  118. Fabrizio Oddone        Thread Mgr/System       thds
  119. Marco Piovanelli       AliasDragger ext        fndx
  120. Ken Prehoda            QuickDraw GX            pmgr
  121. Quinn "The Eskimo"     ICeTEe ext              ICTE
  122. Eric-Paul Rebel        System (enablers)       hdwr, mach, tabl, tv  
  123. Rene Ros               68K DebugServicesINIT ext
  124.                                                Norm
  125.                        CDU cp                  CDUf, CDUt, PBUt
  126.                        Find File Extension ext fndf
  127.                        General Controls cp     gpad
  128.                        LaserWriter Bridge cp   LASB
  129.                        MegaPhone Menu ext      CYP8
  130.                        QuickDraw GX            qdgx
  131.                        QuickDraw GX?           pxtn
  132.                        Speech Manager ext      ttsc
  133.                        System (enablers)       cput, intd, kbd , qd  ,
  134.                                                scri, snd , te  , tv  ,
  135.                                                xttt
  136.                        System 7.5 Update       fsm , mach
  137.                        TappyType cp            TapT
  138.                        Telephone Manager Extension ext
  139.                                                tele
  140.                        Video Startup ext       tv  
  141.                        unknown                 Frs1, FrsH, gV0A, GVfd,
  142.                                                GVms, IACi, kPow, SnLv,
  143.                                                TapT
  144. Alex Rosenberg         System/Comm. Toolbox    ctbm, ctbu, ctbv, conn, crm 
  145. Patrick Stadelmann     General Controls cp     gprf
  146. John Tsombakos         System?                 tv  
  147. ---------------------------------------------------------------------------
  148.  
  149. ===========================================================================
  150. Contributions to the non-selector sections
  151. ===========================================================================
  152. Person                 Chapter/Section
  153. ---------------------------------------------------------------------------
  154. John W. Baxter         Reports/Gestalt Apple Event
  155. Eric-Paul Rebel        General Info/Gestalt Problems
  156. Rene Ros               General Info/System Managers
  157.                        General Info/Gestalt Problems
  158.                        General Info/URL
  159.                        Reports/Macintosh Clones
  160.                        About this List/Availability/Internet/WWW
  161. Alex Rosenberg, Apple Computer Inc.
  162.                        General Info/Gestalt Problems
  163. ---------------------------------------------------------------------------
  164.  
  165. John W. Baxter wrote a useful report on the new Gestalt Apple event which
  166. is available with the Scriptable Finder (more specific: the Finder
  167. Scripting Extension).
  168.  
  169. Patrick Stadelmann hacked his way into the General Controls control panel
  170. and found that the 'gprf' selector provides information about the
  171. settings. This is really useful information! But not confirmed by Apple...
  172.  
  173. According to Alex Rosenberg none of the Communications TB selectors are
  174. installed by the Communications Toolbox for System 6.
  175.  
  176. Eric-Paul Rebel toughed me the structure of the 'gbly' resource which is
  177. in every enabler and lists the machine IDs for the machines it is used
  178. by. Based on that, I found several new machine IDs inside the
  179. System 7.5 Update enabler (version 1.0) and MAE Enabler (version 1.0).
  180.  
  181. CDU by Connectix also supports the 'SAVC' and 'SAVR' selectors.
  182.  
  183. Some information on Macintosh clones and Gestalt was added.
  184. The Shared Library Mgr and File System Mgr selectors were moved from the
  185. Apple Additional Software to the Apple System Software section.
  186.  
  187. Second WWW site now available at the home site of the editor. The
  188. availability of a Setext to HTML converter (by Hans Verbrugge) makes it
  189. easier to have several URLs mixed in with the text instead of special
  190. chapters. Hence, the URL chapter is removed and most of the 'Related
  191. Software' chapter was moved to the 'Reports' chapter or elsewhere.
  192.  
  193. GSL is now available on the Developer CD-ROM from Apple Computer, Inc.
  194. Starting with the May issue, it can be found in this folder:
  195.     :Tool Chest:OS Utilities:
  196.  
  197. Legal Stuff chapter was revised.
  198.  
  199. Changes Overview
  200. ----------------
  201. Added selectors
  202.     Apple System  : -
  203.     Apple Add.    : qd3d
  204.     Third Parties : ICTE
  205. Added unknown
  206.     Apple Softw.  : CYP8, fndf, fndx, Frs1, FrsH, LASB, Norm, otan, SnLv
  207.     Third Parties : CDUf, CDUt, Cut!, FMnu, GVfd, GVms, Info, kPow, NCex,
  208.                     NWin, PBUt, TapT, YaHu, YoHo, YuHu
  209. Changed selectors
  210.     Apple System  : aslm, cput, ctbm, ctbu, ctbv, conn, crm , fndr, fsm ,
  211.                     hdwr, intd, kbd , mach, qd  , qdgx, scri, snd , tabl,
  212.                     te  , tele, ttsc, tv  , xttt
  213.     Apple Add.    : grfx, pmgr, qdgx
  214.     Third Parties : -
  215. Changed unknown
  216.     Apple Softw.  : gpad, gprf, ot  , pxtn
  217.     Third Parties : -
  218. Previously unknown
  219.     Apple System  : -
  220.     Apple Add.    : -
  221.     Third Parties : -
  222. Includes updates 2.8.1 up to and including 2.8.5, sent to subscribers of
  223. the mailing list.
  224.  
  225. Wish list
  226. ---------
  227. The table below lists the topics on which more information is needed
  228. regarding the Gestalt selectors which provide information about these
  229. topics.
  230.  
  231. ===========================================================================
  232. WANTED
  233. ===========================================================================
  234. Information wanted about:
  235. ---------------------------------------------------------------------------
  236. ATA Manager (the SCSI Mgr equiv. for IDE)
  237. DR Emulator (short for dynamic recompiling emulator, on new Power Macs)
  238. PCI Macintosh computers (machine IDs !?)
  239. Pippin
  240. QuickTime VR
  241. RAID (compatible drivers installed?)
  242.  
  243. and more info for the General Info/System Managers section
  244. ---------------------------------------------------------------------------
  245.  
  246. Gestalt Selector Codes
  247. ======================
  248. The following sections list selector codes of which the meaning is known.
  249. For easier reading when using a setext viewer the 'Apple System Software'
  250. section is divided into four groups grouped on the first character of the
  251. selectorcode (A-F, G-L, M-P and Q-Z).
  252.  
  253. Apple System Software (A-F)
  254. ---------------------------
  255. a/ux (A/UX [2.0?])
  256.      (System [6.0.4])
  257.      gestaltAUXVersion
  258.      Returns the version of A/UX, if it is executing, as BCD?
  259.  
  260.      const
  261.      gestaltAUXVersion = 'a/ux'; {A/UX version, if present}
  262.  
  263.      NOTES:
  264.      If Gestalt doesn't know the answer, test bit 9 of the HWCFgFlag
  265.      system global ($0B22; word). if it is, assume you have A/UX 1.0.
  266.  
  267.      This selector also indicates if you're running under MAE on an
  268.      UNIX machine. *AD08
  269. addr (System [6.0.4])
  270.      gestaltAddressingModeAttr
  271.      Returns information about the current addressing mode.
  272.  
  273.      const
  274.      gestaltAddressingModeAttr = 'addr'; {addressing mode attributes}
  275.      gestalt32BitAddressing    = 0;      {started up with 32-bit addr.}
  276.      gestalt32BitSysZone       = 1;      {system heap has 32-bit clean}
  277.                                          { block headers}
  278.      gestalt32BitCapable       = 2;      {machine is 32-bit capable}
  279. alis (System [7.0])
  280.      (Remote Access Aliases ext [1.0?], part of Apple Remote Access)
  281.      gestaltAliasMgrAttr
  282.      Returns information about the Alias Manager.
  283.  
  284.      const
  285.      gestaltAliasMgrAttr                    = 'alis';{Alias Mgr attributes}
  286.      gestaltAliasMgrPresent                 = 0;
  287.      gestaltAliasMgrSupportsRemoteAppletalk = 1;     {supports Remote}
  288.                                                      { Appletalk *AD02}
  289.      gestaltAliasMgr???                     = 2;     {since System 7.1 Pro}
  290.  
  291.      NOTE: See 'Reports' chapter (QuickTime section) for more information.
  292. ascr (AppleScript ext [1.0]) 
  293.      gestaltAppleScriptAttr *AS08
  294.      Returns information about AppleScript.
  295.  
  296.      const
  297.      gestaltAppleScriptAttr           = 'ascr'; {AppleScript attributes}
  298.      gestaltAppleScriptPresent        = 0;
  299.      gestaltAppleScriptPowerPCSupport = 1;
  300. ascv (AppleScript ext [1.0])
  301.      gestaltAppleScriptVersion *AS08
  302.      Returns the version of AppleScript as NumVersion.
  303.  
  304.      const
  305.      gestaltAppleScriptVersion = 'ascv'; {AppleScript version}
  306.      
  307.      NOTE:
  308.      AppleScript 1.1 returns $01100110 which doesn't look like a proper
  309.      version number (version 1.0 returned $01008000). (Rene Ros)
  310. aslm (Shared Library Manager ext [1.1.1?])
  311.      (System? [7.5?])
  312.      gestaltASLM68K *AS17
  313.      Returns the version of the Shared Library Manager as BCD in the upper
  314.      2 bytes and attribute bits in the lower 2 bits. NULL is returned when
  315.      ASLM did not load properly at boot time and is not available.
  316.  
  317.      const
  318.      gestaltASLM68K         = 'aslm';         {ASLM selector for 68K Macs}
  319.      gestaltASLMPPC         = 'slmp';         {ASLM selector for PPC Macs}
  320.      gestaltASLM            = 'aslm';         {or 'slmp', see below}
  321.      gestaltASLMVersionMask = $FFFF0000;      {Version is in upper 2 bytes}
  322.                                               { of result}
  323.      gestaltASLMPresentMask = $0001;          {If set ASLM is or was}
  324.                                               { loaded.}
  325.      gestaltASLMLoadedMask  = $0002;          {If set ASLM is currently}
  326.                                               { loaded.}
  327.  
  328.      #if GENERATINGPOWERPC
  329.          define gestaltASLM gestaltASLMPPC
  330.      #else
  331.          define gestaltASLM gestaltASLM68K
  332.      #endif
  333.  
  334.      NOTE:
  335.      Earlier (beta?) versions of the ASLM PowerPC used 'ASLM' as the
  336.      selector instead of 'slmp'.
  337.  
  338.      A PowerMac 7100/66 with stock 7.5/QDGX/PowerTalk running and
  339.      ASLM 1.1.2 only returns the 'aslm' selector... (John Mancino)
  340. ASLM (Shared Library Manager ext [1.1.1?])
  341.      (System? [7.5?])
  342.      gestaltASLMPPC (old!) *AS17
  343.  
  344.      NOTE:
  345.      See the gestaltASLM68K ('aslm') entry for more information.
  346. atkv (System [7.0, AppleTalk 56])
  347.      gestaltATalkVersion *AT02
  348.      Returns AppleTalk version as NumVersion. If selector is not present
  349.      then AppleTalk is not present (not loaded at startup). *AD18
  350.  
  351.      This is different from 'atlk' !
  352.  
  353.      const
  354.      gestaltATalkVersion = 'atkv'; {AppleTalk version *AD01/M01}
  355.  
  356.      WARNING:
  357.      This selector returns the majorRev field of the NumVersion record as
  358.      hexadecimal instead of the usual BCD.
  359.  
  360.      NOTE: See 'Reports' chapter (AppleTalk section) for more information.
  361. atlk (System [6.0.4])
  362.      gestaltAppleTalkVersion
  363.      Returns the version of the .MPP driver as INTEGER. And returns zero
  364.      when AppleTalk is off. *AD18
  365.  
  366.      const
  367.      gestaltAppleTalkVersion = 'atlk'; {AppleTalk version}
  368. aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *AT03
  369.      gestaltAudioCDAccessVersion?
  370.      Returns Audio CD Access version as BCD.
  371.  
  372.      const
  373.      gestaltAudioCDAccessVersion? = 'aucd'; {Audio CD Access version}
  374.  
  375.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  376. BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
  377.      gestaltCloseViewAttr
  378.      Returns information about the CloseView Control Panel.
  379.  
  380.      const
  381.      gestaltCloseViewAttr               = 'BSDa'; {CloseView attributes}
  382.      gestaltCloseViewEnabled            = 0;
  383.      gestaltCloseViewDisplayMgrFriendly = 1;      {Closeview compatible}
  384.                                                   { with Display Manager}
  385.                                                   { (FUTURE) *AS05}
  386. cash (System [???]) *S03
  387.      gestaltRAMCacheSize
  388.      Returns byte-size of physical RAM allocated to Disk Cache.
  389.      0 = Disk Cache Off
  390.  
  391.      const
  392.      gestaltRAMCacheSize = 'cash'; {RAM cache size}
  393.  
  394.      NOTE:
  395.      This selector is listed in THINK Reference 1.0 but it is unknown which
  396.      System Software version should install it.
  397. cfrg (System [7.1.2? on PowerMac])
  398.      (CFM68K ext [1.0a1], part of OpenDoc)
  399.      gestaltCFMAttr
  400.      Returns information about the Code Fragment Manager.
  401.  
  402.      const
  403.      gestaltCFMAttr    = 'cfrg'; {Code Fragment Mgr attributes}
  404.      gestaltCFMPresent = 0;      {Code Fragment Manager is present}
  405. cmta (ColorSync ext [1.0.4?]
  406.      gestaltColorMatchingAttr *AD09
  407.      Returns information about the ColorSync Utilities?
  408.  
  409.      const
  410.      gestaltColorMatchingAttr        = 'cmta'; {Color Matching Attributes}
  411.      gestaltHighLevelMatching        = 0;      {BeginMatching &}
  412.                                                { DrawMatchedPicture
  413.                                                { present}
  414.      gestaltColorMatchingLibLoaded   = 1;      {Native PowerPC shared}
  415.                                                { library is loaded. a.k.a.}
  416.                                                { gestaltSharedLibLoaded?}
  417. cmtc (ColorSync ext [1.0?])
  418.      gestaltColorMatchingVersion
  419.      Returns the version of the Color Matching software as BCD.
  420.  
  421.      const
  422.      gestaltColorMatchingVersion = 'cmtc'; {Color Matching version}
  423.      gestaltColorSync10          = $0100;  {*AD09}
  424.      gestaltColorSync11          = $0110;  {*AD09}
  425.      gestaltColorSync104         = $0104;  {*AD09}
  426.      gestaltColorSync105         = $0105;  {*AD09}
  427.      gestaltColorSync20?         = $0200;  {*AD17}
  428.  
  429.      NOTE:
  430.      ColorSync 1.0 returns gestaltColorSync10 for the version of the
  431.      utilities that work with System 6.0.7. And gestaltColorSync11 is
  432.      returned by the version that works with System 7.0 and later.
  433.      From version 1.0.4 up the correct version is returned. *AD17
  434. conn (System [7.0])
  435.      gestaltConnMgrAttr
  436.      Returns information about the Connection Manager.
  437.  
  438.      const
  439.      gestaltConnMgrAttr         = 'conn'; {Conn. Mgr attributes}
  440.      gestaltConnMgrPresent      = 0;      {Connection Mgr is present}
  441.      gestaltConnMgrCMSearchFix  = 1;      {fix for CMAddSearch present}
  442.      gestaltConnMgrErrorString  = 2;      {has CMGetErrorString *AS02}
  443.      gestaltConnMgrMultiAsyncIO = 3;      {CMNewsIOPB,CMDisposeIOPB,}
  444.                                           { CMPBRead,CMPBWrite,CMPBIOKill}
  445.                                           { *AS02}
  446.  
  447.      NOTE:
  448.      Not installed by Communications Toolbox for System 6.
  449. cpkr (Color Picker ext [2.0?])
  450.      gestaltColorPicker
  451.      gestaltColorPickerVersion
  452.      Returns Color Picker version as BCD.
  453.  
  454.      const
  455.      gestaltColorPicker        = 'cpkr'; {ColorPicker Mgr version}
  456.      gestaltColorPickerVersion = 'cpkr'; {ColorPicker Mgr version}
  457.  
  458.      NOTE:
  459.      Version 2.0a4 returns as response $0x0001, but version 2.0a5 and
  460.      later (including 2.0f) returns $0x0100. (Rene Ros)
  461. cpnt (System [7.1])
  462.      (Color Picker Extension ext [2.0])
  463.      (Color Sync ext [1.0.4?])
  464.      (Macintosh Easy Open cp [1.0?])
  465.      (QuickTime ext [1.0])
  466.      (Speech Manager ext [1.1.1, not 1.2?])
  467.      gestaltComponentMgr
  468.      Returns Component Manager version as INTEGER.
  469.  
  470.      const
  471.      gestaltComponentMgr = 'cpnt'; {Component Mgr version *AS01}
  472. cput (System [7.1.2?]) *AS04/AS05
  473.      gestaltNativeCPUtype
  474.      Returns a value that indicates the type of native processor that is
  475.      currently running.
  476.  
  477.      const
  478.      gestaltNativeCPUtype = 'cput'; {Native CPU type}
  479.      {Motorola Architecture}
  480.      gestaltCPU68000 = 1;
  481.      gestaltCPU68010 = 2;
  482.      gestaltCPU68020 = 3;
  483.      gestaltCPU68030 = 4;
  484.      gestaltCPU68040 = 5;
  485.      {PowerPC Architecture}
  486.      gestaltCPU601   = $0x101;
  487.      gestaltCPU603   = $0x103;
  488.      gestaltCPU604   = $0x104;
  489.      gestaltCPU620?  = ???;
  490.  
  491.      NOTE:
  492.      To check whether the native system architecture is a MC680x0 or a
  493.      PowerPC use the gestaltSysArchitecture ('sysa') selector. See for
  494.      more information on the 68K processors the gestaltProcessorType
  495.      ('proc') selector.
  496.  
  497.      The GestaltEqu.h file published with E.T.O. #12 was replaced by the
  498.      one on E.T.O. #13. However there was made a mistake, it lists the 68K
  499.      values in the range 0-4 while it should be 1-5 as listed above.
  500.      This problem is acknowledged by Apple.
  501.      You can fix this problem by using the declarations listed above or by
  502.      using the GestaltEqu.h file from E.T.O. #13 but then test first the
  503.      gestaltSysArchitecture ('sysa') selector and when it reports a 68K
  504.      machine use gestaltProcessorType.
  505.      However, System 7.5 and 7.5.1 were apperantly created using the
  506.      incorrect header file and return the incorrect values.
  507.      Example: 'cput' returns 3 and 'proc' returns 4.
  508.      (Dave Radcliffe, Roland Mansson, Rene Ros)
  509. crm  (System [7.0])
  510.      gestaltCRMAttr
  511.      Returns information about the Communications Resource Manager.
  512.  
  513.      const
  514.      gestaltCRMAttr          = 'crm '; {Comm. Resource Mgr attributes}
  515.      gestaltCRMPresent       = 0;      {Comm. Resource Mgr present}
  516.      gestaltCRMPersistentFix = 1;      {fix for persistent tools *AS02}
  517.      gestaltCRMToolRsrcCalls = 2;      {has CRMGetToolResource/}
  518.                                        { ReleaseToolResource *AS02}
  519.  
  520.      NOTE:
  521.      Not installed by Communications Toolbox for System 6.
  522. csvr (Control Strip cp [1.0])
  523.      gestaltControlStripVersion
  524.      Returns the version of Control Strip software that is installed as
  525.      NumVersion.
  526.  
  527.      const
  528.      gestaltControlStripVersion = 'csvr';
  529.  
  530.      WARNING:
  531.      Control Strip 1.0 used to install the 'sdvr' selector (which is used
  532.      by PowerTalk) instead of this selector to return the version. This is
  533.      corrected when the gestaltControlStripAttr ('sdev') selector has bit
  534.      gestaltControlStripVersionFixed set (Control Strip 1.1 and later).
  535.      *AS11/AT08 (Rene Ros)
  536. ctbm (System [???])
  537.      gestaltCTBManagersAttr
  538.      Returns information about the Communications Toolbox Managers, it is a
  539.      bitmask of which managers are present.
  540.  
  541.      const
  542.      gestaltCTBManagersAttr = 'ctbm'; {Comm. Mgrs attributes *S02}
  543.  
  544.      NOTE:
  545.      Never installed by any known system version. Never planned for any
  546.      previous or future system version. (Alex Rosenberg)
  547. ctbu (System [7.0])
  548.      gestaltCTBUtilsAttr
  549.      Returns information about the Communications Toolbox Utilities.
  550.  
  551.      const
  552.      gestaltCTBUtilsAttr    = 'ctbu'; {Comm. TB Utils attributes *S02}
  553.      gestaltCTBUtilsPresent = 0;      {*S02}
  554.  
  555.      NOTE:
  556.      Not installed by Communications Toolbox for System 6.
  557. ctbv (System [7.0])
  558.      gestaltCTBVersion
  559.      Returns the version number of the Communications Toolbox.
  560.  
  561.      const
  562.      gestaltCTBVersion = 'ctbv'; {Comm. Toolbox version}
  563.  
  564.      NOTE:
  565.      Not installed by Communications Toolbox for System 6.
  566.  
  567.      With the Power Macintosh the Communication Toolbox returned a Gestalt
  568.      value indicating version 1.1 while the ROM actually had version 1.0.
  569.      This is fixed by the PowerPC Enabler 1.0.1. and the PowerPC Upgrade
  570.      Card Enabler 1.0.1. because they install CTB 1.1. *AT06
  571.      As of System 7.1, the version of the CTB should track the System
  572.      version. The PowerMac ROMs handled this incorrectly and System 7.5
  573.      rectifies this by reporting 7.5.0. (Alex Rosenberg)
  574. dbac (System [7.0])
  575.      gestaltDBAccessMgrAttr
  576.      Returns information about the Data Access Manager.
  577.  
  578.      const
  579.      gestaltDBAccessMgrAttr    = 'dbac'; {Data Access Mgr attributes}
  580.      gestaltDBAccessMgrPresent = 0;      {TRUE if Data Access Mgr present}
  581. dfnd (PowerTalk ext [1.0?], part of PowerTalk)
  582.      gestaltSDPFindVersion
  583.      Returns the SDP Find version as INTEGER. Returns zero if not present
  584.      and available.
  585.  
  586.      const
  587.      gestaltSDPFindVersion = 'dfnd'; {SDP Find version}
  588. dict (System [7.1])
  589.      gestaltDictionaryMgrAttr
  590.      Returns information about the Dictionary Manager.
  591.  
  592.      const
  593.      gestaltDictionaryMgrAttr    = 'dict'; {Dictionary Mgr attributes}
  594.      gestaltDictionaryMgrPresent = 0;
  595. ditl (System [7.0])
  596.      gestaltDITLExtAttr
  597.      Returns information about the Dialog Manager.
  598.  
  599.      const
  600.      gestaltDITLExtAttr    = 'ditl'; {Dialog Mgr attributes}
  601.      gestaltDITLExtPresent = 0;      {Dialog Mgr extensions present}
  602. dplv (Display Enabler [1.0?])
  603.      (System [7.1.1])
  604.      gestaltDisplayMgrVers *AS05
  605.      Returns Display Manager version as INTEGER?.
  606.  
  607.      const
  608.      gestaltDisplayMgrVers = 'dplv'; {Display Mgr version}
  609. dply (Display Enabler [1.0?])
  610.      (System [7.1.1])
  611.      gestaltDisplayMgrAttr *AS05
  612.      Returns information about the Display Manager.
  613.  
  614.      const
  615.      gestaltDisplayMgrAttr = 'dply'; {Display Mgr attributes}
  616.      gestaltDisplayMgrPresent = 0;   {True if Display Mgr is present}
  617.      gestaltDisplayMgr???     = 1;
  618.      gestaltDisplayMgr???     = 2;
  619. drag (Macintosh Drag and Drop ext [1.0])
  620.      gestaltDragMgrAttr *AD05
  621.      Returns information about the Drag Manager.
  622.  
  623.      const
  624.      gestaltDragMgrAttr         = 'drag'; {Drag Manager attributes}
  625.      gestaltDragMgrPresent      =  0;     {Drag Manager is present}
  626.      gestaltDragMgrFloatingWind =  1;     {*AS09}
  627.      gestaltPPCDragLibPresent   =  2;     {*AS09}
  628.      gestaltDragMgr???          = 31;     {set with System 7.5}
  629. dsig (PowerTalk ext [1.0?], part of PowerTalk)
  630.      gestaltDigitalSignatureVersion
  631.      Returns version of the Digital Signature toolbox as BCD.
  632.  
  633.      const
  634.      gestaltDigitalSignatureVersion = 'dsig'; {Digitial Signature version}
  635. eajt (Easy Access cp [7.0])
  636.      gestaltEasyAccessJTable
  637.      Returns the base address of the Easy Access jump-trap table.
  638.  
  639.      const
  640.      gestaltEasyAccessJTable = 'eajt'; {Easy Access jump-trap table *M01}
  641. easy (Easy Access cp [6.0.4?])
  642.      gestaltEasyAccessAttr
  643.      Returns information about the status of Easy Access.
  644.  
  645.      const
  646.      gestaltEasyAccessAttr   = 'easy'; {Easy Access attributes}
  647.      gestaltEasyAccessOff    = 0;      {Easy Access present but off}
  648.      gestaltEasyAccessOn     = 1;      {Easy Access on}
  649.      gestaltEasyAccessSticky = 2;      {Easy Access "Sticky"}
  650.      gestaltEasyAccessLocked = 3;      {Easy Access "Locked"}
  651.  
  652.      NOTE:
  653.      The values listed above are not returned with System 7 and later.
  654.      Because of a bug different values are returned. This problem is
  655.      acknowledged by Apple, but it is unclear when it will be fixed. They
  656.      know about it since September 1992... (Rene Ros)
  657. edtn (System [7.0])
  658.      (Macintosh Easy Open cp [1.0?])
  659.      gestaltEditionMgrAttr
  660.      Returns information about the Edition Manager.
  661.  
  662.      const
  663.      gestaltEditionMgrAttr             = 'edtn'; {Edition Mgr attributes}
  664.      gestaltEditionMgrPresent          = 0;
  665.      gestaltEditionMgrTranslationAware = 1;      {*AD03}
  666. evnt (System [7.0]) *AS05
  667.      (Apple Event Manager ext [1.0.1], part of AppleScript Setup)
  668.      gestaltAppleEventsAttr
  669.      Returns information about Apple Events.
  670.  
  671.      const
  672.      gestaltAppleEventsAttr     = 'evnt'; {Apple events attributes}
  673.      gestaltAppleEventsPresent  = 0;      {True if Apple Events present}
  674.                                           { *AS05}
  675.      gestaltScriptingSupport    = 1;
  676.      gestaltOSLInSystem         = 2;      {OSL is in system so don`t use}
  677.                                           { the one linked}
  678.  
  679.      NOTE:
  680.      These declarations in the AEObjects.h file (on ETO 14) should be
  681.      ignored:
  682.      gestaltObjectSupportLibraryInSystem = 1,
  683.      gestaltObjectSupportLibraryPowerPCSupport = 2
  684. flag (Network Extension ext [System 7.0 *AT02])
  685.      gestaltFlagshipAttr
  686.      Returns information about the Flagship.
  687.  
  688.      const
  689.      gestaltFlagshipAttr       = 'flag'; {*M01}
  690.      gestaltFlagshipPresent    = 0;      {*M01}
  691.      gestaltFlagshipRegistered = 1;      {*M01}
  692. fndr (Finder [7.1.1]) *AS04
  693.      (Finder Scripting Extension ext [1.2?])
  694.      (Finder Clipping Extension ext [7.1.4?])
  695.      gestaltFinderAttr
  696.      Returns information about the Finder.
  697.  
  698.      const
  699.      gestaltFinderAttr               = 'fndr';
  700.      gestaltFinderDropEvent          = 0;
  701.      gestaltFinderMagicPlacement     = 1;
  702.      gestaltFinderCallsAEProcess     = 2;
  703.      gestaltOSLCompliantFinder       = 3;      {supports Finder Event Suite}
  704.      gestaltFinderSupports4GBVolumes = 4;      {implemented by System 7.5.1}
  705.                                                { but bit not set?}
  706.      gestaltFinderHandlesCFMFailures = 5;
  707.      gestaltFinderHasClippings       = 6;      {*AD12}
  708. fold (System [7.0])
  709.      gestaltFindFolderAttr
  710.      Returns information about the FindFolder function.
  711.  
  712.      const
  713.      gestaltFindFolderAttr    = 'fold'; {FindFolder attributes}
  714.      gestaltFindFolderPresent = 0;      {FindFolder function available}
  715. font (System [7.0])
  716.      (TrueType INIT ext for System 6)
  717.      gestaltFontMgrAttr
  718.      Returns information about the Font Manager.
  719.  
  720.      const
  721.      gestaltFontMgrAttr      = 'font'; {Font Mgr attributes}
  722.      gestaltOutlineFonts     = 0;      {TrueType present}
  723.      gestaltFontMgr???       = 1;      {set with System 7.1 & 7.5}
  724.      gestaltDiskCachedFonts? = 2;      {Disk Cached Fonts available?}
  725.  
  726.      NOTE:
  727.      Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
  728.      with full subroutine names, there is a subroutine called
  729.      'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
  730.      of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
  731. fpu  (System [6.0.4])
  732.      gestaltFPUType
  733.      Returns a value that indicates the FPU-type, if any.
  734.  
  735.      const
  736.      gestaltFPUType  = 'fpu '; {FPU Type}
  737.      gestaltNoFPU    = 0;      {no FPU}
  738.      gestalt68881    = 1;      {68881 FPU}
  739.      gestalt68882    = 2;      {68882 FPU}
  740.      gestalt68040FPU = 3;      {built-in 68040 FPU *S01}
  741.  
  742.      NOTE: See also the 'FPUE' entry in the Third Parties section.
  743. fs   (720K Floppy Disk Formatter ext [1.0a3?],
  744.       part of the Hardware System Update [2.0])
  745.      (Apple Share ext [AS 3.0/SYS 7.0])
  746.      (File System Manager ext [1.2])
  747.      (System [7.0])
  748.      gestaltFSAttr
  749.      Returns information about the file system.
  750.  
  751.      const
  752.      gestaltFSAttr               = 'fs  '; {file-system attributes}
  753.      gestaltFullExtFSDispatching = 0;      {exports HFSDispatch traps}
  754.      gestaltHasFSSpecCalls       = 1;      {supports FSSpec records}
  755.      gestaltHasFileSystemManager = 2;      {has the File System Manager}
  756.                                            { *S01}
  757.      gestaltFSMDoesDynamicLoad   = 3;      {FSM supports dynamic loads}
  758.                                            { *AD12}
  759.      gestaltFSSupports4GBVols    = 4;      {FS supports 4 gigabyte volumes}
  760.                                            { *AD14}
  761.      gestaltFSSupports2TBVols    = 5;      {FS supports 2 terabyte volumes}
  762.                                            { *AD14}
  763.      gestaltHasExtendedDiskInit  = 6;      {has extended Disk}
  764.                                            { Initialization calls *AD12}
  765.  
  766.      NOTES:
  767.      See also the gestaltFSMVersion ('fsm ') selector.
  768.  
  769.      See 'Reports' chapter (QuickTime section) for more information.
  770. fsm  (File System Manager ext [1.2])
  771.      gestaltFSMVersion *AD14
  772.      Returns File System Manager version as BCD.
  773.  
  774.      const
  775.      gestaltFSMVersion = 'fsm ';
  776.  
  777.      NOTE:
  778.      See also the gestaltFSAttr ('fs  ') selector.
  779.  
  780.      While both FSM 1.2 and System 7.5 install/patch three traps
  781.      (_FileSysMgr, _HFSUtils and _Pack2 (Extended Disk Initialization
  782.      Package)) it happens that System 7.5 does not install the
  783.      gestaltFSMVersion ('fsm ') selector. It does set the FSM related bits
  784.      of the gestaltFSAttr ('fs  ') selector. (Fabrizio Oddone)
  785.      This selector is correctly installed by System 7.5.1. (Rene Ros)
  786. fxfr (System [7.0])
  787.      gestaltFXfrMgrAttr
  788.      Returns information about the File Transfer Manager.
  789.  
  790.      const
  791.      gestaltFXfrMgrAttr        = 'fxfr'; {File Transfer Mgr attributes}
  792.      gestaltFXfrMgrPresent     = 0;      {File Transfer Mgr present}
  793.      gestaltFXfrMgrMultiFile   = 1;      {supports FTSend and FTReceive}
  794.                                          { *AS02}
  795.      gestaltFXfrMgrErrorString = 2;      {supports FTGetErrorString}
  796.                                          { *AS02/S02}
  797.      gestaltFXfrMgr???         = 3?;     {new, see future technote}
  798.                                          { set with System 7.5}
  799.  
  800. Apple System Software (G-L)
  801. ---------------------------
  802. gval (GestaltValue glue code)
  803.      gestaltValueTable?
  804.      Returns a pointer to a table with the selectors and values managed
  805.      by the GestaltValue code. (Marco Piovanelli)
  806.  
  807.      const
  808.      gestaltValueTable? = 'gval';
  809.  
  810.      WARNING:
  811.      Although this information isn't officially confirmed, it is probably
  812.      correct.
  813.  
  814.      NOTES:
  815.      Although System 7.5 implements the GestaltValue functions it does not
  816.      install this selector because the GestaltValue table is combined with
  817.      the normal Gestalt table (See the 'tabl' entry). Only with system
  818.      software before 7.5 this selector is installed by the glue code.
  819.      (Rene Ros)
  820.  
  821.      See 'Reports' chapter (GestaltValue section) for more information.
  822. hdwr (System [6.0.4]) INF
  823.      gestaltHardwareAttr
  824.      Returns information about the hardware configuration of the machine.
  825.  
  826.      const
  827.      gestaltHardwareAttr    = 'hdwr'; {hardware attributes}
  828.      gestaltHasVIA1         =  0;     {VIA 1}
  829.      gestaltHasVIA2         =  1;     {VIA 2}
  830.      gestaltHasRBV          =  2;     {RBV *M01}
  831.      gestaltHasASC          =  3;     {ASC (or compatible with)}
  832.      gestaltHasSCC          =  4;     {SCC *M01}
  833.      gestaltHasOSS          =  5;     {OSS *M01}
  834.      gestaltHasSCSIDMA      =  6;     {53C80 SCSI DMA *M01}
  835.      gestaltHasSCSI         =  7;     {53C80 SCSI}
  836.      gestaltHasSWIMIOP      =  8;     {SWIM IOP *M01}
  837.      gestaltHasSCCIOP       =  9;     {SCC IOP *M01}
  838.      gestaltHasFitch        = 10;     {Fitch memory Controller *M02}
  839.      gestaltHasIWM          = 11;     {IWM *M01}
  840.      gestaltHasPWM          = 12;     {PWM disk speed buffer *M02}
  841.      gestaltHasRAMSndBuff   = 13;     {RAM-based sound buffer *M02}
  842.      gestaltHasVideoDAConv  = 14;     {Video D/A Converter *M02}
  843.      gestaltHasPGC          = 15;     {PGC (parity control) *M02}
  844.      gestaltHasRPU?         = 16;     {Random Parity Unit}
  845.      gestaltHasOMC?         = 17;     {Orwell Memory Controller}
  846.      gestaltHasVISARBV?     = 18;     {VISA Ram Based Video}
  847.      gestaltHasSoftPowerOff = 19;     {Software PowerOff (since 7.0?) *S01}
  848.      gestaltHasSonic        = 20;     {Sonic (built-in ethernet) *M01}
  849.      gestaltHasSCSI961      = 21;     {Int. 53C96 SCSI *AT01}
  850.      gestaltHasSCSI962      = 22;     {Ext. 53C96 SCSI *AT01}
  851.      gestaltHasDAFBVideo    = 23;     {DAFB Video *M01}
  852.      gestaltHasUniversalROM = 24;     {Universal ROM *AT04}
  853.      gestaltHasJaws?        = 25;     {Jaws Memory Controller?}
  854.      gestaltHasAWAC?        = 27;     {AWAC? set on PowerMac, C660AV and}
  855.                                       { under MAE 1.0}
  856.      gestaltHasDSP?         = 30;     {Digital Signal Processor? set on}
  857.                                       { C660AV}
  858.  
  859.      NOTES:
  860.      See for additional information the TN "M.OV.GestaltSysenvirons" (OV 16).
  861.  
  862.      On the Mac IIfx and Quadra 900 the gestaltHasSCC bit always returns 0
  863.      because the SCC is isolated by I/O processors. When the Compatibility
  864.      Switch control panel is used the bit is set. *AD12
  865.  
  866.      The old IM VI listed this selector as an environmental selector but
  867.      IM OS Utilities now lists it as an informational selector.
  868. help (System [7.0])
  869.      gestaltHelpMgrAttr
  870.      Returns information about the Help Manager.
  871.  
  872.      const
  873.      gestaltHelpMgrAttr       = 'help'; {Help Mgr attributes}
  874.      gestaltHelpMgrPresent    =  0;     {Help Mgr present}
  875.      gestaltHelpMgrExtensions =  1;     {Help Mgr extensions installed}
  876.                                         { *AS03}
  877.      gestaltAppleGuideIsDebug = 30;     {Apple Guide is debugging version}
  878.                                         { *AS12}
  879.      gestaltAppleGuidePresent = 31;     {Apple Guide is available *AS12}
  880. hscd (High Sierra File Access ext [5.0], part of Apple CD-ROM Software) 
  881.      (ISO 9660 File Access ext [1.0-4.0], part of Apple CD-ROM Software)
  882.      gestaltHighSierraVersion? *AT03
  883.      Returns High Sierra File Access version in BCD.
  884.  
  885.      const
  886.      gestaltHighSierraVersion? = 'hscd'; {High Sierra Fileaccess version}
  887.  
  888.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  889. icmp (QuickTime ext [1.0])
  890.      gestaltCompressionMgr
  891.      Returns Compression Manager version as Integer.
  892.  
  893.      const
  894.      gestaltCompressionMgr = 'icmp'; {determines if Image Compression}
  895.                                      { manager is available *AS01}
  896. icon (System 7.5 Update ext [1.0])
  897.      gestaltIconUtilities
  898.      Returns information about the Icon Utilities routines.
  899.  
  900.      const
  901.      gestaltIconUtilities        = 'icon'; {Icon Utils attributes}
  902.      gestaltIconUtilitiesPresent = 0;
  903.  
  904.      NOTE:
  905.      This selector is supposed to be implemented since System 7.1.2. You
  906.      need to determine if the _IconDispatch A-trap ($AB49) is available
  907.      instead since the Icon Utilities are actually available since
  908.      System 7.0. *AD13/AT01
  909.      System 7.5.1 finally implements this selector. (Anonymous)
  910. intd (Powerbook Duo Enabler [1.0])
  911.      (System [7.5])
  912.      (System Enabler 111 [1.0])
  913.      (System Enabler 121 [1.0])
  914.      (System Enabler 131 [1.0])
  915.      (System Enabler 201 [1.0])
  916.      gestaltInternalDiskAttr?
  917.      Returns information about the internal harddisk of portable
  918.      computers?
  919.  
  920.      const
  921.      gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
  922.      gestaltHasInternalDisk?  =  0;     {TRUE if machine has internal HD}
  923.      gestaltDiskSpinning?     =  1;     {TRUE if internal HD is spon up}
  924.      gestalt???               = 24;     {unknown, set on PB180, PB210,}
  925.                                         { PB540 and others?}
  926.  
  927.      WARNING:
  928.      This information is from a reliable source. However, is it not
  929.      officially confirmed by Apple and there are no constants defined.
  930.  
  931.      NOTE:
  932.      On a PB Duo 210 (PowerBook Duo Enabler) I haven't seen bit 1 set with
  933.      System 7.1, even when the disk is spinning. It is also reported the
  934.      bit is clear when the disk is spinning and set when down (seen on
  935.      PB Duo 230). (David Lewis, Rene Ros)
  936.      This problem seems to be fixed with System 7.5.1. (Rene Ros)
  937. iscd (ISO 9660 File Access ext [5.0], part of Apple CD-ROM Software)
  938.      gestaltISO9660Version?
  939.      Returns ISO 9660 File Access version in BCD?.
  940.  
  941.      const
  942.      gestaltISO9660Version? = 'iscd';
  943.  
  944.      NOTE:
  945.      Versions before 5.0 installed the 'hscd' selector.
  946. kbd  (System [6.0.4])
  947.      gestaltKeyboardType
  948.      Returns a value that indicates the type of keyboard on which the last
  949.      keystroke was seen.
  950.  
  951.      const
  952.      gestaltKeyboardType      = 'kbd '; {keyboard type}
  953.      gestaltMacKbd            =  1;     {Macintosh Keyboard}
  954.      gestaltMacAndPad         =  2;     {Macintosh Keyboard with Pad}
  955.      gestaltMacPlusKbd        =  3;     {Macintosh Plus Keyboard}
  956.      gestaltExtADBKbd         =  4;     {Extended ADB Keyboard}
  957.      gestaltStdADBKbd         =  5;     {Standard ADB Keyboard}
  958.      gestaltPrtblADBKbd       =  6;     {Portable ADB Keyboard}
  959.      gestaltPrtblISOKbd       =  7;     {Portable ISO ADB Keyboard}
  960.      gestaltStdISOADBKbd      =  8;     {Standard ISO ADB Keyboard}
  961.      gestaltExtISOADBKbd      =  9;     {Extended ISO ADB Keyboard}
  962.      gestaltADBKbdII          = 10;     {ADB Keyboard II}
  963.      gestaltElmerKbd          = 10;     {=gestaltADBKbdII, used in}
  964.                                         { some sample code}
  965.      gestaltADBISOKbdII       = 11;     {ISO ADB Keyboard II}
  966.      gestaltElmerISOKbd       = 11;     {=gestaltADBISOKbdII, used in}
  967.                                         { some sample code}
  968.      gestaltPwrBookADBKbd     = 12;     {PowerBook Keyboard *AT01}
  969.      gestaltPwrBookISOADBKbd  = 13;     {PowerBook Keyboard (ISO) *AT01}
  970.      gestaltAppleAdjustKeypad = 14;     {Apple Adjustable Keypad *AT01}
  971.      gestaltAppleAdjustADBKbd = 15;     {Apple Adjustable Keyboard}
  972.                                         { incl. US, ISO and Japanese *AT01}
  973.      gestaltPwrBkExtISOKbd    = 20;     {PowerBook Extended Intl. *AS15}
  974.      gestaltPwrBkExtJISKbd    = 21;     {PowerBook Extended Japanese *AS15}
  975.      gestaltPwrBkExtADBKbd    = 24;     {PowerBook Extended Domestic *AS15}
  976.  
  977.      ======================================================================
  978.      Combinations of System Global KbdType/ADB Mgr devType and
  979.      gestaltKeyboardType values                                       *AT01
  980.      ======================================================================
  981.      KbdType    gestaltKeyboardType     Gestalt Name
  982.      (hex.)     (decimal)
  983.      ----------------------------------------------------------------------
  984.        $03          1                   gestaltMacKbd
  985.        $13          2                   gestaltMacAndPad
  986.        $0B          3                   gestaltMacPlusKbd
  987.        $02          4                   gestaltExtADBKbd
  988.        $01          5                   gestaltStdADBKbd
  989.        $06          6                   gestaltPrtblADBKbd
  990.        $07          7                   gestaltPrtblISOKbd
  991.        $04          8                   gestaltStdISOADBKbd
  992.        $05          9                   gestaltExtISOADBKbd
  993.        $08         10                   gestaltADBKbdII
  994.        $09         11                   gestaltADBISOKbdII
  995.        $0C         12                   gestaltPwrBookADBKbd
  996.        $0D         13                   gestaltPwrBookISOADBKbd
  997.        $0E         14                   gestaltAppleAdjustKeypad
  998.        $10         15                   gestaltAppleAdjustADBKbd, US
  999.        $11         15                   gestaltAppleAdjustADBKbd, ISO
  1000.        $12         15                   gestaltAppleAdjustADBKbd, Japanese
  1001.        $13         20                   gestaltPwrBkExtISOKbd ?
  1002.        $14         21                   gestaltPwrBkExtJISKbd ?
  1003.        $17         24                   gestaltPwrBkExtADBKbd ?
  1004.      ----------------------------------------------------------------------
  1005.  
  1006.      NOTES:
  1007.      The Apple Adjustable Keyboard doesn't have its own Gestalt keyboard
  1008.      type defined with some versions of System Software (7.1?). It changes
  1009.      a low memory global but this doesn't change the Gestalt response. This
  1010.      problem is corrected by the Hardware System Update 2.0 and later.
  1011.  
  1012.      If the keyboard isn't recognized by the Gestalt Mgr, an error is
  1013.      returned. *AD19
  1014.  
  1015.      The PowerMac 7100/66 (System 7.1.2) doesn't install this selector for
  1016.      some reason. Other Macs with Gestalt version 4 do, so it isn't
  1017.      intentional.
  1018.  
  1019.      The PowerBook Extended keyboards (which include function keys) for
  1020.      International, Japanese and Domestic may be incorrect. The GestaltEqu
  1021.      file from which this info came also listed the Extended ADB keyboard
  1022.      as three different types instead of one as later was corrected by
  1023.      Apple.
  1024.      The KbdType numbers for the PowerBook Extended Keyboards were found
  1025.      with the PTCH 5 resource of the Hardware System Update 2.0.
  1026.      (Rene Ros)
  1027.  
  1028.      Since this selector returns the type of the keyboard last touched
  1029.      and because there can be more than one keyboard, MacDTS considers this
  1030.      selector to be obsolete. You should use GetADBInfo instead and check
  1031.      the orgADBAddr field for a keyboard (0x02) and the devType field
  1032.      contains the keyboard device type. It uses the same values as the
  1033.      KbdType low memory variable, see the table above. *AD07/AT01
  1034. kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *AT03
  1035.      gestaltApplePhotoAccessVersion?
  1036.      Returns Apple Phote Access version in BCD.
  1037.  
  1038.      const
  1039.      gestaltApplePhotoAccessVersion? = 'kpcd';
  1040.  
  1041.      NOTE:
  1042.      The above is what the documentation says. However it seems to return
  1043.      always $FFFFFF7 as response.
  1044. lram (System [6.0.4])
  1045.      gestaltLogicalRAMSize
  1046.      Returns the amount of logical memory available in bytes.
  1047.  
  1048.      const
  1049.      gestaltLogicalRAMSize = 'lram'; {logical RAM size}
  1050.  
  1051.      NOTE:
  1052.      The returned value may not be accurate because an adjustment to the
  1053.      number is performed to yield the best possible estimate of the
  1054.      remaining RAM. The discrepancy is usually because of different color
  1055.      depth settings for on-board video and because of the NanoKernel
  1056.      (68K emulator on Power Macintosh computers). The latter takes about
  1057.      870K. *AD18
  1058. lmem (System [6.0.4])
  1059.      gestaltLowMemorySize
  1060.      Returns the amount of the low-memory area in bytes.
  1061.  
  1062.      const
  1063.      gestaltLowMemorySize = 'lmem'; {low-memory area size}
  1064.  
  1065. Apple System Software (M-P)
  1066. ---------------------------
  1067. mach (System [6.0.4]) INF
  1068.      gestaltMachineType
  1069.      Returns one of the following values, indicating the type of
  1070.      machine.
  1071.  
  1072.      RELEASED
  1073.      const
  1074.      gestaltMachineType       = 'mach'; {machine type}
  1075.      gestaltClassic           =   1;    {Macintosh 128K}
  1076.      gestaltMacXL             =   2;    {Macintosh XL}
  1077.      gestaltMac512KE          =   3;    {Macintosh 512KE}
  1078.      gestaltMacPlus           =   4;    {Macintosh Plus}
  1079.      gestaltMacSE             =   5;    {Macintosh SE}
  1080.      gestaltMacII             =   6;    {Macintosh II}
  1081.      gestaltMacIIx            =   7;    {Macintosh IIx}
  1082.      gestaltMacIIcx           =   8;    {Macintosh IIcx}
  1083.      gestaltMacSE030          =   9;    {Macintosh SE/30}
  1084.      gestaltPortable          =  10;    {Macintosh Portable}
  1085.      gestaltMacPortable       =  10;    {= gestaltPortable *AD18}
  1086.      gestaltMacIIci           =  11;    {Macintosh IIci}
  1087.      gestaltMacIIfx           =  13;    {Macintosh IIfx}
  1088.      gestaltMacClassic        =  17;    {Macintosh Classic}
  1089.      gestaltMacIIsi           =  18;    {Macintosh IIsi}
  1090.      gestaltMacLC             =  19;    {Macintosh LC}
  1091.      gestaltQuadra900         =  20;    {Macintosh Quadra 900 *AT01}
  1092.      gestaltPowerBook170      =  21;    {Macintosh PowerBook 170 *AT01}
  1093.      gestaltQuadra700         =  22;    {Macintosh Quadra 700 *AT01}
  1094.      gestaltClassicII         =  23;    {Macintosh Classic II *AT01}
  1095.      gestaltPowerBook100      =  24;    {Macintosh PowerBook 100 *AT01}
  1096.      gestaltPowerBook140      =  25;    {Macintosh PowerBook 140 *AT01}
  1097.      gestaltQuadra950         =  26;    {Macintosh Quadra 950 *AT01}
  1098.      gestaltMacLCIII          =  27;    {Macintosh LC III}
  1099.      gestaltPerforma450       =  27;    {= gestaltMacLCIII *AD18}
  1100.      gestaltPowerBook210      =  29;    {Macintosh PowerBook 210}
  1101.      gestaltPowerBookDuo210   =  29;    {= gestaltPowerBook210 *AD18}
  1102.      gestaltMacCentris650     =  30;    {Macintosh Centris 650}
  1103.      gestaltPowerBook230      =  32;    {Macintosh PowerBook 230}
  1104.      gestaltPowerBookDuo230   =  32;    {= gestaltPowerBook230 *AD18}
  1105.      gestaltPowerBook180      =  33;    {Macintosh PowerBook 180}
  1106.      gestaltPowerBook160      =  34;    {Macintosh PowerBook 160}
  1107.      gestaltMacQuadra800      =  35;    {Macintosh Quadra 800}
  1108.      gestaltMacQuadra650      =  36;    {Macintosh Quadra 650 *AT01}
  1109.      gestaltMacLCII           =  37;    {Macintosh LC II}
  1110.      gestaltPowerBookDuo250   =  38;    {Macintosh PowerBook Duo 250 *AT01}
  1111.      gestaltPowerMac9150      =  39;    {Power Macintosh 9150 *AT01}
  1112.      gestaltAWS9150_80        =  39;    {= gestaltPowerMac9150 *AD18}
  1113.      gestaltPowerMac8100_110  =  40;    {Power Macintosh 8100/110 *AD18}
  1114.      gestaltMacIIvi           =  44;    {Macintosh IIvi}
  1115.      gestaltPerforma600       =  45;    {Macintosh Performa 600}
  1116.      gestaltMacIIvm           =  45;    {= gestaltPerforma600 *AD18}
  1117.      gestaltMacIIvx           =  48;    {Macintosh IIvx}
  1118.      gestaltPowerMac7100_80   =  47;    {Power Macintosh 7100/80 *AD18}
  1119.      gestaltMacColorClassic   =  49;    {Macintosh Color Classic}
  1120.      gestaltPerforma250       =  49;    {= gestaltMacColorClassic *AD18}
  1121.      gestaltPowerBook165c     =  50;    {Macintosh PowerBook 165c}
  1122.      gestaltMacCentris610     =  52;    {Macintosh Centris 610}
  1123.      gestaltMacQuadra610      =  53;    {Macintosh Quadra 610 *AT01}
  1124.      gestaltPowerBook145      =  54;    {Macintosh PowerBook 145 & 145b}
  1125.                                         { *AT01}
  1126.      gestaltPowerMac8100_100  =  55;    {Power Macintosh 8100/100 *AD18}
  1127.      gestaltMacLC520          =  56;    {Macintosh LC 520 *AT01}
  1128.      gestaltMacCentris660AV   =  60;    {Macintosh Centris 660AV *AT01}
  1129.      gestaltPerforma460       =  62;    {Macintosh Performa 460}
  1130.      gestaltPerforma46x       =  62;    {= gestaltPerforma460 *AD18}
  1131.      gestaltPowerMac8100_80   =  65;    {Power Macintosh 8100/80}
  1132.      gestaltPowerBook180c     =  71;    {Macintosh PowerBook 180c *AT01}
  1133.      gestaltPowerBook520_540  =  72;    {Macintosh PowerBook 520/520c &}
  1134.                                         { 540/540c}
  1135.                                         { use MaximumProcessorSpeed from}
  1136.                                         { Power Mgr. 25 and 33 resp. *AT01}
  1137.      gestaltPowerBook500      =  72;    {= gestaltPowerBook520_540 *AD18}
  1138.                                         { Macintosh PowerBook 500 series}
  1139.      gestaltPowerMac6100_60   =  75;    {Power Macintosh 6100/60}
  1140.      gestaltPowerBookDuo270c  =  77;    {Macintosh PowerBook Duo 270c}
  1141.                                         { *AT01}
  1142.      gestaltMacQuadra840AV    =  78;    {Macintosh Quadra 840AV *AT01}
  1143.      gestaltMacLC550          =  80;    {Macintosh LC 550 *AT01}
  1144.      gestaltPerforma550       =  80;    {= gestaltMacLC550 *AD18}
  1145.      gestaltPowerBook165      =  84;    {Macintosh PowerBook 165 *AT01}
  1146.      gestaltMacTV             =  88;    {Macintosh TV}
  1147.      gestaltMacLC475          =  89;    {Macintosh LC 475 *AT01}
  1148.      gestaltPerforma47x       =  89;    {= gestaltMacLC475 *AD18}
  1149.      gestaltMacLC575          =  92;    {Macintosh LC 575 *AT01}
  1150.      gestaltMacQuadra605      =  94;    {Macintosh Quadra 605 *AT01}
  1151.      gestaltMacLC630          =  98;    {Macintosh LC 630, see below *AT01}
  1152.      gestaltMacQuadra630      =  98;    {Macintosh Quadra 630 *AT01}
  1153.                                         { Q630 has MC68040, LC 630 has}
  1154.                                         { MC68LC040 but can upgrade}
  1155.      gestaltMac630            =  98;    {= gestaltMacLC630}
  1156.                                         { = gestaltMacQuadra630 *AD18}
  1157.                                         { Macintosh 630 series }
  1158.      gestaltPowerMac6100_66   = 100;    {Power Macintosh 6100/66}
  1159.      gestaltPowerBookDuo280   = 102;    {Macintosh PowerBook Duo 280}
  1160.      gestaltPowerBookDuo280c  = 103;    {Macintosh PowerBook Duo 280c}
  1161.      gestaltPowerMac7100_66   = 112;    {Power Macintosh 7100/66}
  1162.      gestaltPowerBook150      = 115;    {Macintosh PowerBook 150}
  1163.      
  1164.      Below are the values for the Power Macintosh Upgrade cards. *AD18
  1165.      The duplicate symbolic names are from the Gestalt & SysEnvirons
  1166.      TechNote *AT01 (sigh!).
  1167.      const
  1168.      gestaltPowerMacLC475     = 104;    {LC475 PPC Upgrade Card}
  1169.      gestaltPowerMacPerforma47x = 104;  {= gestaltPowerMacLC475}
  1170.                                         { Performa 47x PPC Upgrade Card}
  1171.      gestaltPowerMacLC575     = 105;    {LC575 PPC Upgrade Card}
  1172.      gestaltPowerMacPerforma57x = 105;  {= gestaltPowerMacLC575}
  1173.                                         { Performa 57x PPC Upgrade Card}
  1174.      gestaltPowerMacQuadra630 = 106;    {Quadra 630 PPC Upgrade Card}
  1175.      gestaltPowerMacLC630     = 106;    {= gestaltPowerMacQuadra630}
  1176.                                         { LC 630 PPC Upgrade Card}
  1177.      gestaltPowerMacPerforma63x = 106;  {= gestaltPowerMacQuadra630}
  1178.                                         { = gestaltPowerMacLC630}
  1179.                                         { Performa 63x PPC Upgrade Card}
  1180.      gestaltPowerMac700       = 116;    {Quadra 700 PPC Upgrade Card}
  1181.      gestaltPowerMacQuadra700 = 116;    {= gestaltPowerMac700}
  1182.      gestaltPowerMac900       = 117;    {Quadra 900 PPC Upgrade Card}
  1183.      gestaltPowerMacQuadra900 = 117;    {= gestaltPowerMac900}
  1184.      gestaltPowerMac950       = 118;    {Quadra 950 PPC Upgrade Card}
  1185.      gestaltPowerMacQuadra950 = 118;    {= gestaltPowerMac950}
  1186.      gestaltPowerMacC610      = 119;    {Centris 610 PPC Upgrade Card}
  1187.      gestaltPowerMacCentris610 = 119;   {= gestaltPowerMacC610}
  1188.      gestaltPowerMacC650      = 120;    {Centris 650 PPC Upgrade Card}
  1189.      gestaltPowerMacCentris650 = 120;   {= gestaltPowerMacC650}
  1190.      gestaltPowerMacQ610      = 121;    {Quadra 610 PPC Upgrade Card}
  1191.      gestaltPowerMacQuadra610 = 121;    {= gestaltPowerMacQ610}
  1192.      gestaltPowerMacQ650      = 122;    {Quadra 650 PPC Upgrade Card}
  1193.      gestaltPowerMacQuadra650 = 122;    {= gestaltPowerMacQ650}
  1194.      gestaltPowerMac800       = 123;    {Quadra 800 PPC Upgrade Card}
  1195.      gestaltPowerMacQuadra800 = 123;    {= gestaltPowerMacQ800}
  1196.  
  1197.      Exceptions with systems prior to System 7.1:
  1198.      const
  1199.      gestaltMacLCII           =  19;    {Macintosh LC & LC II}
  1200.                                         { LC has MC68020,LC II has MC68030}
  1201.      gestaltPowerBook145      =  25;    {Macintosh PowerBook 140 & 145}
  1202.                                         { use GetCPUSpeed from}
  1203.                                         { Power Mgr? 16 and 25 resp.}
  1204.  
  1205.      Released unknown
  1206.      gestaltMacColorClassicII?= ???;    {Macintosh Color Classic II}
  1207.      gestaltMacLC580          = ???;    {Macintosh LC 580}
  1208.      gestaltPowerMac5200_75LC?= ???;    {Power Macintosh 5100/75 LC}
  1209.  
  1210.      Relabeled
  1211.      Macintosh ED             = gestaltMacPlus
  1212.                                 (sold in Netherlands, 512K with Mac SE
  1213.                                  case color)
  1214.      Performa 200             = gestaltClassicII
  1215.      Performa 250             = gestaltMacColorClassic
  1216.                                 (sold in Australia & Britain)
  1217.      Performa 275             = gestaltMacColorClassicII? ?
  1218.      Performa 400             = gestaltMacLCII
  1219.      Performa 405             = gestaltMacLCII
  1220.      Performa 410             = gestaltMacLCII
  1221.      Performa 430             = gestaltMacLCII
  1222.      Performa 450             = gestaltMacLCIII
  1223.      Performa 466             = gestaltMacLCIII
  1224.      Performa 467             = gestaltMacLCIII
  1225.      Performa 475             = gestaltMacLC475
  1226.      Performa 476             = gestaltMacLC475
  1227.      Performa 550             = gestaltMacLC550
  1228.      Performa 560MM           = gestaltMacLC550
  1229.      Performa 575             = gestaltMacLC575
  1230.      Performa 577             = gestaltMacLC575
  1231.      Performa 578             = gestaltMacLC575
  1232.      Performa 630             = gestaltMac630?
  1233.      Performa 635             = gestaltMac630?
  1234.      Performa 636             = gestaltMac630?
  1235.      Performa 638CDV          = gestaltMac630?
  1236.      Performa 6110CD          = gestaltPowerMac6100_60
  1237.      Performa 6112CD          = gestaltPowerMac6100_60
  1238.      Performa 6115CD          = gestaltPowerMac6100_60
  1239.      Performa 6117CD          = gestaltPowerMac6100_60
  1240.      Performa 6118CD          = gestaltPowerMac6100_60
  1241.      PowerMac 6100/60AV       = gestaltPowerMac6100_60
  1242.      PowerMac 7100/66AV       = gestaltPowerMac7100_66
  1243.      PowerMac 8100/80AV       = gestaltPowerMac8100_80
  1244.      PowerMac WGS 6150        = gestaltPowerMac6100_60 ?
  1245.      PowerMac WGS 8150        = gestaltPowerMac8100_80 ?
  1246.      PowerMac WGS 9150        = gestaltPowerMac9150
  1247.      Quadra 660AV             = gestaltMacCentris660AV
  1248.      Workgroup Server 60      = gestaltMacCentris610
  1249.      Workgroup Server 80      = gestaltMacQuadra800
  1250.      Workgroup Server 95      = gestaltQuadra950
  1251.      Workgroup Server 95+     = gestaltQuadra950
  1252.  
  1253.      UNRELEASED (RUMOURED / PRERELEASES)
  1254.      const
  1255.      gestaltPowerMac8100_120  =  12;    {Power Macintosh 8100/120}
  1256.      gestaltPaulaMac?         =  31;    {"Paula's Desk Macintosh" in}
  1257.                                         { PowerPC Enabler 1.1}
  1258.      gestalt???               =  43;    {unknown, pre-rel. Tempest/Cyclone}
  1259.      gestalt???               =  59;    {unknown, in System 7.5 Update's}
  1260.                                         { gbly resource}
  1261.      gestaltPowerMac8100_60?  =  61;    {Power Macintosh 8100/80 when}
  1262.                                         { actually running at 60 MHz}
  1263.                                         { (value found experimentally)}
  1264.      gestaltPowerMac8100_60?  =  64;    {Power Macintosh 8100/60 but also}
  1265.                                         { Power Macintosh 8100/80 when}
  1266.                                         { actually running at 66.6 MHz}
  1267.                                         { (value from PowerPC Enabler)}
  1268.      gestalt???               =  73;    {unknown, in System 7.5 Update's}
  1269.                                         { gbly resource}
  1270.      gestalt???               =  74;    {unknown, pre-rel. Power Mac named}
  1271.                                         { 'PDM Evt 1 (R.I.P.)'}
  1272.      gestalt???               =  81;    {unknown, in System 7.5 Update's}
  1273.                                         { gbly resource}
  1274.      gestalt???               =  83;    {unknown, in System 7.5 Update's}
  1275.                                         { gbly resource}
  1276.      gestaltLC475_20?         =  86;    {Q605 as a LC475 at 20 Mhz instead}
  1277.                                         { of 25 Mhz}
  1278.      gestalt???               =  87;    {unknown, in System 7.5 Update's}
  1279.                                         { gbly resource}
  1280.      gestaltLC475_33?         =  90;    {Q605 as a LC475 at 33 Mhz instead}
  1281.                                         { of 25 Mhz}
  1282.      gestalt???               =  91;    {unknown, in System 7.5 Update's}
  1283.                                         { gbly resource}
  1284.      gestaltQ605_20?          =  93;    {Q605 at 20 Mhz instead of 25 Mhz}
  1285.      gestaltQ605_33?          =  95;    {Q605 at 33 Mhz instead of 25 Mhz}
  1286.      gestaltTellShow          =  98;    {codename for LC630? *AD16}
  1287.      gestalt???               =  99;    {???, 'Macintosh' in Enabler 405}
  1288.      gestaltTellXfmr          =  99;    {codename LC630 successor? *AD16}
  1289.      gestaltPowerMac6100_80?  = 101;    {Power Macintosh 6100/80}
  1290.      gestalt???               = 107;    {unknown, in System 7.5 Update's}
  1291.                                         { gbly resource}
  1292.      gestaltPowerMac7100_60?  = 111;    {Power Macintosh 7100/60}
  1293.      gestalt???               = 114;    {unknown, in System 7.5 Update's}
  1294.                                         { gbly resource}
  1295.      gestalt???               = 124;    {unknown, in MAE Enabler}
  1296.                                         { gbly resource}
  1297.      gestalt???               = 125;    {unknown, in MAE Enabler}
  1298.                                         { gbly resource}
  1299.      gestalt???               = 126;    {unknown, in MAE Enabler}
  1300.                                         { gbly resource}
  1301.  
  1302.      The following machine IDs are used by not to be released ROM images.
  1303.      If you observe any of these values, it's a prerelease system.
  1304.      const
  1305.      gestaltPowerMac6100_66?  =  46;    {Power Macintosh 6100/66}
  1306.      gestaltPowerMac8100_100? =  66;    {Power Macintosh 8100/100}
  1307.      gestaltPowerMac7100_80?  = 113;    {Power Macintosh 7100/80}
  1308.  
  1309.      NOTES:
  1310.      The Power Macintosh computers also set the three low bits of a 32-bit
  1311.      register at address $5FFF FFFC to a machine identification code.
  1312.  
  1313.      ======================================================================
  1314.      Power Macintosh register identification codes
  1315.      ======================================================================
  1316.      Machine                     Register bits
  1317.      ----------------------------------------------------------------------
  1318.      Power Macintosh 6100        000
  1319.      Power Macintosh 7100        010
  1320.      Power Macintosh 8100        011
  1321.      ----------------------------------------------------------------------
  1322.  
  1323.      An upgraded Centris 610 doesn't return 119 (Centris 610 upgrade card?)
  1324.      but 75 (PowerMac 6100). (Carl R. Osterwald)
  1325.      With an upgraded Quadra 700 the upgrade card value is returned. The
  1326.      values for the upgrade cards came from the kMachineNameStrID resource
  1327.      from the Power Mac Upgrade Card enabler distributed with System
  1328.      Update 3.0 on disk 2. The Power Macintosh Card 1.0 control panel
  1329.      checks both the Quadra/Centris machine IDs and the ones for the
  1330.      upgrade cards to determine if it can run. (Rene Ros)
  1331.  
  1332.      When a PowerMac is clock-chipped it changes the machine type ID it
  1333.      returns. This has been observed with a PM 6100/60 which was chipped to
  1334.      80 MHz and higher, it returned 101 which belongs to a PM 6100/80
  1335.      (Mike Cohen). Even funnier is a 8100AV (standard at 80 MHz) which
  1336.      returns 64 ("8100/60") with a clockspeed of 66.6 MHz, but 61 (???)
  1337.      and no name in the 'About this Macintosh' window at 60 MHz.
  1338.      With a PowerMac 8100/100 these type IDs where found with the different
  1339.      clock speeds: 65 (80 mHz), 55 (100 mHz), 40 (110 mHz) and 12 (120 mHz).
  1340.      - Centris 650 can be changed into a Quadra 650 by a resistor swap.
  1341.      - remove jumper J118 of Q605 and it becomes a LC475.
  1342.      - LC III/P450 returns value for P460 when chipped to 33 MHz.
  1343.      For more info on clock-chipping Macs:
  1344.           http://bambam.cchem.berkeley.edu/~schrier/mhz.html
  1345.      (Marc Schrier, the 'clock-chipping' guy who sometimes slows down a
  1346.      Mac but most of the time he is speeding them up...).
  1347.  
  1348.      The Developer Notes (available from APDA, on ftp.apple.com and on the
  1349.      Developer CD-ROM Series) about some PowerBook models (100/140/170)
  1350.      provide incorrect information regarding the machine type returned by
  1351.      the Gestalt Manager.
  1352.  
  1353.      IM More Macintosh Toolbox (p. 1-127) lists this selector as
  1354.      'gestaltMachineModel'.
  1355.  
  1356.      You can use the returned value as an index with GetIndString
  1357.      to get the machine's name. The STR# resource ID is:
  1358.      kMachineNameStrID       = -16395;
  1359.      See for more information on the Machine Name STR# resource the
  1360.      'Machine Name' section in the 'Reports' chapter.
  1361.  
  1362.      See for more information on Macintosh clones the 'Macintosh Clones'
  1363.      section in the 'Reports' chapter.
  1364. malr (PowerTalk ext [1.0?], part of PowerTalk)
  1365.      gestaltSMPMailerVersion
  1366.      Returns the SMP Mailer version as INTEGER. Returns zero if not
  1367.      present and available.
  1368.  
  1369.      const
  1370.      gestaltSMPMailerVersion = 'malr'; {SMP Mailer version}
  1371. micn (System [6.0.4]) INF
  1372.      gestaltMachineIcon
  1373.      Returns an icon family resource ID for the current type of
  1374.      Macintosh.
  1375.  
  1376.      const
  1377.      gestaltMachineIcon = 'micn'; {machine ICON/cicn res ID}
  1378.  
  1379.      NOTE:
  1380.      It appears as if this selector always returns the ID of the generic
  1381.      Macintosh icon (like in the Welcome screen), starting with System 7.5.
  1382.      (Rene Ros)
  1383. misc (System [6.0.5])
  1384.      gestaltMiscAttr
  1385.      Returns information about miscellaneous pieces of software or
  1386.      hardware.
  1387.  
  1388.      const
  1389.      gestaltMiscAttr          = 'misc'; {miscellaneous attributes}
  1390.      gestaltScrollingThrottle = 0;
  1391.      gestaltBootGlobals       = 1;      {Boot Globals *M02}
  1392.      gestaltSquareMenuBar     = 2;
  1393. mixd (System? [7.1.2?])
  1394.      gestaltMixedModeAttr
  1395.      Returns information about the Mixed Mode Manager.
  1396.  
  1397.      const
  1398.      gestaltMixedModeAttr = 'mixd'; {Mixed Mode Mgr attributes}
  1399.      gestaltPowerPCAware  = 0;      {True if MMMgr Supports PowerPC}
  1400.  
  1401.      NOTE:
  1402.      The name 'gestaltMixedModeVersion' (as used in IM OS Utilites and
  1403.      IM PowerPC System Software) is incorrect. It may be listed in
  1404.      Gestalt header files for a limited time for backwards compatibility.
  1405.      (Rene Ros)
  1406. mmu  (System [6.0.4])
  1407.      gestaltMMUType
  1408.      Returns a value that indicates the type of MMU currently installed,
  1409.      if any.
  1410.  
  1411.      const
  1412.      gestaltMMUType  = 'mmu '; {MMU Type}
  1413.      gestaltNoMMU    = 0;      {no MMU}
  1414.      gestaltAMU      = 1;      {AMU}
  1415.      gestalt68851    = 2;      {68851 MMU}
  1416.      gestalt68030MMU = 3;      {built-in 68030 MMU}
  1417.      gestalt68040MMU = 4;      {built-in 68040/68LC040 *S01}
  1418.      gestaltEMMU1    = 5;      {Emulated MMU type 1, PowerPC MMU *AS05}
  1419.  
  1420.      NOTE:
  1421.      You should also use this selector to test for existence of
  1422.      _MemoryDispatch if your code runs before system patches are applied
  1423.      on machines of which the ROM implements _MemoryDispatch but the
  1424.      machine doesn't have a MMU. This may happen with a Mac LC, whose
  1425.      ROM is derived from the Macintosh IIci. *AT09
  1426. mtcp (MacTCP cp [1.1])
  1427.      (Open Tpt MacTCP [3.0a2])
  1428.      gestaltMacTCPVersion? *AD01
  1429.      Returns the version of MacTCP, if opened, as index-value. If MacTCP is
  1430.      not opened a value of 0 is returned.
  1431.  
  1432.      ======================================================================
  1433.      MacTCP responses
  1434.      ======================================================================
  1435.      Version   Response   Remarks
  1436.      ----------------------------------------------------------------------
  1437.       all         0       MacTCP not opened.
  1438.       1.1         1
  1439.       1.1.1       2
  1440.       2.0.x       3
  1441.       3.0         4       Part of Open Transport 1.0
  1442.      ----------------------------------------------------------------------
  1443.  
  1444.      NOTE:
  1445.      No constants are defined by the documentation.
  1446. nlup (System [7.0])
  1447.      gestaltStdNBPAttr
  1448.      Returns information about the call StandardNBP.
  1449.  
  1450.      gestaltStdNBPAttr                 = 'nlup'; {Standard NBP attributes}
  1451.      gestaltStdNBPPresent              = 0;
  1452.      gestaltStdNBPSupportsAutoPosition = 1;      {StandardNBP takes (-1,-1)}
  1453.                                                  { for auto-positioning}
  1454. nmgr (System [6.0.5])
  1455.      gestaltNotificationMgrAttr
  1456.      Returns information about the Notification Manager.
  1457.  
  1458.      const
  1459.      gestaltNotificationMgrAttr = 'nmgr'; {Notification Mgr attributes}
  1460.      gestaltNotificationPresent = 0;
  1461. nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
  1462.      gestaltNuBusSlotCount
  1463.      Returns count of NuBus slots.
  1464.  
  1465.      const
  1466.      gestaltNuBusSlotCount = 'nubs'; {NuBus slot count}
  1467. ocet (PowerTalk Manager ext [1.0?], part of PowerTalk)
  1468.      gestaltOCEToolboxVersion
  1469.      Returns the versions of the S&F Server and the OCE Toolbox as BCD.
  1470.      Returns zero if not present and available.
  1471.  
  1472.      const
  1473.      gestaltOCEToolboxVersion = 'ocet'; {OCE Toolbox version}
  1474.      gestaltOCETB             = $0102;  {current OCE Toolbox version 1.0.2}
  1475.      gestaltSFServer          = $0100;  {current S&F Server version 1.0}
  1476.  
  1477.      NOTE:
  1478.      The high order word will represent the S&F Server version number, and
  1479.      the low order the OCE Toolbox version number both as BCD.
  1480.      These will be zero until the component is up and running.
  1481. oceu (PowerTalk Manager ext [1.0?], part of PowerTalk)
  1482.      gestaltOCEToolboxAttr
  1483.      Returns information about the Open Colloboration Environment Toolbox.
  1484.  
  1485.      const
  1486.      gestaltOCEToolboxAttr          = 'oceu'; {OCE Toolbox attributes}
  1487.      gestaltOCETBPresent            = $1;     {OCE toolbox is present,}
  1488.                                               { not running}
  1489.      gestaltOCETBAvailable          = $2;     {OCE toolbox is running and}
  1490.                                               { available}
  1491.      gestaltOCESFServerAvailable    = $4;     {S&F Server is running and}
  1492.                                               { available}
  1493.      gestaltOCTBNativeGlueAvailable = $10;    {PowerPC glue available}
  1494.                                               { *AS13}
  1495.  
  1496.      NOTE:
  1497.      Any (future) remaining OCE attributes may not be established
  1498.      correctly until the attribute gestaltOCETBAvailable is set.
  1499. os   (System [6.0.4, 7.0 and later])
  1500.      (Process Manager INIT ext [???], part of ???)
  1501.      gestaltOSAttr
  1502.      Returns general information about the Operating System.
  1503.  
  1504.      const
  1505.      gestaltOSAttr               = 'os  '; {O/S attributes}
  1506.      gestaltSysZoneGrowable      =  0;
  1507.      gestaltLaunchCanReturn      =  1;
  1508.      gestaltLaunchFullFileSpec   =  2;
  1509.      gestaltLaunchControl        =  3;
  1510.      gestaltTempMemSupport       =  4;
  1511.      gestaltRealTempMemory       =  5;
  1512.      gestaltTempMemTracked       =  6;
  1513.      gestaltIPCSupport           =  7;
  1514.      gestaltSysDebuggerSupport   =  8;
  1515.      gestaltSkiaGlobalsSwitched  =  9;     {*AS05}
  1516.      gestaltBgndMouseDownSupport = 10;     {unnamed Process Mgr routine}
  1517.                                            { available to indicate if a}
  1518.                                            { layer switch is wanted by the}
  1519.                                            { application when one of its}
  1520.                                            { windows is clicked while in}
  1521.                                            { the background. *AS04}
  1522.      gestalt???                  = 11;     {on PowerPC, Performa 630}
  1523.                                            { and PB180?}
  1524.      gestalt???                  = 13;     {unknown, System 7.5}
  1525.      gestalt???                  = 14;     {unknown, System 7.5}
  1526.      gestalt???                  = 15;     {unknown, System 7.5.1}
  1527.  
  1528.      NOTES:
  1529.      See the Process Manager chapter in IM Processes for more information
  1530.      about the launch control features. And the Memory Manager chapter in
  1531.      IM Memory about the memory features.
  1532.  
  1533.      Under A/UX 2.x this selector incorrectly returns information about the
  1534.      Process Manager, which isn't available. You should test for A/UX 3.0 or
  1535.      later by using the gestaltAUXVersion ('a/ux') selector. *AT10
  1536.  
  1537.      More information on the unnamed routine which presence is indicated
  1538.      by the gestaltBgndMouseDownSupport bit can be found in the orginal
  1539.      email from Marco Piovanelli to the editor of the GSL. You can get a
  1540.      copy by emailing this command to the mail archive server:
  1541.           'archive get src/bgndmouse.txt'
  1542.  
  1543.      The header file which lists the gestaltSkiaGlobalsSwitched bit says
  1544.      this:
  1545.      /*gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here*/
  1546.  
  1547.      "Skia" was the code name for QuickDraw GX (MacsBug uses it for trap
  1548.      $A832, which is the main QuickDraw GX trap).
  1549.      (Lawrence D'Oliveiro, Anonymous)
  1550. ostt (System [6.0.8?])
  1551.      gestaltOSTable
  1552.      Returns the base address of the Operating System trap table.
  1553.  
  1554.      const
  1555.      gestaltOSTable = 'ostt'; {O/S trap table base}
  1556. osyv (sysvINIT ext [???] by T. Tanaka, Apple Computer Japan Inc.)
  1557.      gestaltOldSystemVersion?
  1558.      Returns the version of the system file as BCD which was returned
  1559.      before sysvINIT replaced the gestalt definition with a corrected one.
  1560.  
  1561.      const
  1562.      gestaltOldSystemVersion? = 'osyv';
  1563.  
  1564.      NOTE:
  1565.      Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
  1566.      available on Developer CD Series) replaces the standard 'sysv' gestalt
  1567.      function with a corrected one to return $0x0607 and installs the
  1568.      'osyv' selector which uses the replaced gestalt definition. *M03
  1569. pcxg (PC Exchange cp? [???]) *AS04/AS05
  1570.      gestaltPCXAttr
  1571.      Returns information about PC Exchange.
  1572.  
  1573.      const
  1574.      gestaltPCXAttr            = 'pcxg'; {PC Exchange attributes}
  1575.      gestaltPCXHas8and16BitFAT = 0;      {PC Exchange supports both 8 and}
  1576.                                          { 16 bit FATs}
  1577.      gestaltPCXHasProDOS       = 1;      {PC Exchange supports ProDOS}
  1578. pgsz (System [6.0.4])
  1579.      gestaltLogicalPageSize
  1580.      Returns the logical page size in bytes.
  1581.  
  1582.      const
  1583.      gestaltLogicalPageSize = 'pgsz'; {logical page size}
  1584.  
  1585.      NOTE:
  1586.      The value is unknown on 68000 machines, Gestalt will return an error.
  1587. pop! (System [7.0])
  1588.      gestaltPopupAttr
  1589.      Returns information about the pop-up control definition.
  1590.      
  1591.      const
  1592.      gestaltPopupAttr    = 'pop!'; {pop-up CDEF attributes}
  1593.      gestaltPopupPresent = 0;      {pop-up CDEF available}
  1594. powr (System [6.0.4])
  1595.      gestaltPowerMgrAttr
  1596.      Returns information about the Power Manager, if present.
  1597.  
  1598.      const
  1599.      gestaltPowerMgrAttr       = 'powr'; {Power Mgr attributes}
  1600.      gestaltPMgrExists         = 0;      {Power Mgr is present}
  1601.      gestaltPMgrCPUIdle        = 1;      {CPU can idle}
  1602.      gestaltPMgrSCC            = 2;      {can stop SCC clock}
  1603.      gestaltPMgrSound          = 3;      {can shut off sound circuits}
  1604.      gestaltPMgrDispatchExists = 4;      {dispatch routines are present}
  1605. ppc  (System [7.0])
  1606.      gestaltPPCToolboxAttr
  1607.      Returns information about the capabilities of the PPC Toolbox.
  1608.  
  1609.      const
  1610.      gestaltPPCToolboxAttr             = 'ppc ';  {PPC Toolbox attributes}
  1611.      gestaltPPCToolboxPresent          = $0x0000; {Requires PPCInit to be}
  1612.                                                   { called}
  1613.      gestaltPPCSupportsIncoming        = $0x0001; {Deny incoming net}
  1614.                                                   { requests}
  1615.      gestaltPPCSupportsOutGoing        = $0x0002; {Deny outgoing net}
  1616.                                                   { requests}
  1617.      gestaltPPCSupportsRealTime        = $0x1000; {Supports real-time}
  1618.                                                   { delivery}
  1619.      gestaltPPCSupportsStoreAndForward = $0x2000; {Supports store and}
  1620.                                                   { forward delivery}
  1621.      gestaltPPCSupportsDontCare        = $0x4000; {Supports specification}
  1622.                                                   { of Don't care}
  1623.  
  1624.      NOTE:
  1625.      The first thing that is confusing is that, unlike other selectors
  1626.      returning attributes, the responses are not bit values, but bit masks.
  1627.      This means you simply AND the value with the response to test the bit.
  1628.      The second thing that is confusing is how to interpret
  1629.           gestaltPPCToolboxPresent = $0x0000.
  1630.      What this means is that if the PPC toolbox is present, but has not
  1631.      been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
  1632.      returns $0x0000. In reality, PPCInit gets called by the Process
  1633.      Manager before any applications get launched, so no applications will
  1634.      actually see this response. (Dave Radcliffe)
  1635. proc (System [6.0.4])
  1636.      gestaltProcessorType
  1637.      Returns a value that indicates the type of processor that is
  1638.      currently running (or emulated on Power Macs or under MAE).
  1639.  
  1640.      const
  1641.      gestaltProcessorType = 'proc'; {processor type}
  1642.      gestalt68000         = 1;      {MC68000}
  1643.      gestalt68010         = 2;      {MC68010}
  1644.      gestalt68020         = 3;      {MC68020}
  1645.      gestalt68030         = 4;      {MC68030}
  1646.      gestalt68040         = 5;      {MC68040 *S01}
  1647.  
  1648.      NOTES:
  1649.      The 68LC040 responds as type gestalt68040 but doesn't have a FPU. The
  1650.      user can swap out the 68LC040 and put in a real 68040 with FPU, so
  1651.      just checking the machineType or the processorType isn't enough.
  1652.      (Dave Radcliffe)
  1653.  
  1654.      Has there been a 68EC030 processor??? I assume it returns
  1655.      gestalt68030 but doesn't have an MMU. (Rene Ros)
  1656.  
  1657.      On a Power Macintosh the Gestalt function returns, although a 68LC040
  1658.      is emulated, the value gestalt68020. This return value is intended to
  1659.      highlight the two ways in which the 68LC040 Emulator more closely
  1660.      resembles a 68020 processor than a 68040 processor. *AD11
  1661. prpv (PowerTalk ext [1.0?], part of PowerTalk)
  1662.      gestaltSDPPromptVersion
  1663.      Returns the SDP Prompt version as INTEGER. Returns zero if not
  1664.      present and available.
  1665.  
  1666.      const
  1667.      gestaltSDPPromptVersion = 'prpv'; {SDP Prompt version}
  1668. prty (System [6.0.4])
  1669.      gestaltParityAttr
  1670.      Returns information about the parity-checking abilities of the
  1671.      machine.
  1672.  
  1673.      const
  1674.      gestaltParityAttr          = 'prty'; {parity attributes}
  1675.      gestaltHasParityCapability = 0;
  1676.      gestaltParityEnabled       = 1;
  1677.  
  1678. Apple System Software (Q-Z)
  1679. ---------------------------
  1680. qd   (System [6.0.4])
  1681.      gestaltQuickDrawVersion
  1682.      Returns the version of QuickDraw currently present as 2-byte value.
  1683.  
  1684.      const
  1685.      gestaltQuickDrawVersion = 'qd  '; {QuickDraw version}
  1686.      gestaltOriginalQD       = $000;
  1687.      gestaltOriginalQD1      = $001;
  1688.      gestalt8BitQD           = $100;
  1689.      gestalt32BitQD          = $200;
  1690.      gestalt32BitQD11        = $210;
  1691.      gestalt32BitQD12        = $220;
  1692.      gestalt32BitQD13        = $230;
  1693.      gestalt32BitQD135?      = $235;   {with System 7.1.2, ROM = 3072K?}
  1694.      gestalt32BitQD139?      = $239;   {with System 7.5.1 on Power Macs}
  1695.                                        { *AT12}
  1696.  
  1697.      ======================================================================
  1698.      Possible Combinations of ROM Versions and System Software Versions
  1699.      ======================================================================
  1700.      ROM Class             System Version         Gestalt Value
  1701.      ----------------------------------------------------------------------
  1702.      Black-and-white class <  7.0                 gestaltOriginalQD
  1703.      (ROM < 256K)          >= 7.0                 gestaltOriginalQD and
  1704.                                               gestaltSystemVersion >= $0700
  1705.  
  1706.      Color QD class        <  7.0, no INITs       gestalt8BitQD
  1707.      (ROM = 256K)          6.0.3/6.0.4 and        gestalt32BitQD
  1708.                            32-Bit QD INIT 1.0
  1709.                            6.0.5-6.0.8 and        gestalt32BitQD12
  1710.                            32-Bit QD INIT 1.2
  1711.                            >= 7.0                 gestalt32BitQD13
  1712.  
  1713.      ci class              6.0.4                  gestalt32BitQD + 1
  1714.      (256K < ROM >= 3072K) 6.0.5-6.0.8            gestalt32BitQD12
  1715.                            >= 7.0                 gestalt32BitQD13
  1716.      SuperROM?             7.1.2-7.5?             gestalt32BitQD135?
  1717.      (ROM = 3072K)         7.5.1- ?               gestalt32BitQD139?
  1718.      ----------------------------------------------------------------------
  1719.      (Original source: D e v e l o p 14, June 1993, p. 56;
  1720.       Info on System 7.1.2 and later based on observations and technical
  1721.       notes.)
  1722.  
  1723.      NOTE:
  1724.      gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
  1725.      $0x0201 as response value and doesn't has a constant defined.
  1726.      Another QuickDraw version is System 7 with a black-and-white class
  1727.      machine.
  1728.      
  1729.      Color QuickDraw is only available on 68020 and greater CPUs, and
  1730.      this selector always returns gestaltOriginalQD on 68000 machines,
  1731.      even when running System 7. *AT11
  1732. qdrw (System [7.0])
  1733.      gestaltQuickDrawFeaturesAttr
  1734.      Returns information about QuickDraw.
  1735.  
  1736.      const
  1737.      gestaltQuickDrawFeaturesAttr = 'qdrw'; {QuickDraw attributes} *S01
  1738.      gestaltHasColor              = 0;      {*S01}
  1739.      gestaltHasDeepGWorlds        = 1;      {*S01}
  1740.      gestaltHasDirectPixMaps      = 2;      {*S01}
  1741.      gestaltHasGrayishTextOr      = 3;      {*S01}
  1742.      gestaltSupportsMirroring     = 4;      {*AD12}
  1743.  
  1744.      NOTES:
  1745.      There is a bug in the 'qdrw' selector that causes it to report that
  1746.      Color QuickDraw is always present, even on machines that don't support
  1747.      it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
  1748.      Use SysEnvirons instead or test for the QD version ('qd  ') being
  1749.      8-bit QD or later.
  1750.  
  1751.      IM OS Utilities lists this selector as 'gestaltQuickDrawFeatures'.
  1752. qtim (QuickTime ext [1.0])
  1753.      gestaltQuickTime
  1754.      gestaltQuickTimeVersion
  1755.      Returns QuickTime version as NumVersion.
  1756.  
  1757.      const
  1758.      gestaltQuickTime        = 'qtim'; {Movie Toolbox Availability}
  1759.      gestaltQuickTimeVersion = 'qtim'; {Movie Toolbox version}
  1760.  
  1761.      NOTES:
  1762.      The returned version is obtained from 'vers' resource ID# 1.
  1763.  
  1764.      Initially the name 'gestaltQuickTime' was used to test for the
  1765.      availability of QuickTime. The fact that is always returned a
  1766.      version number was not documented until later. Then the name
  1767.      'gestaltQuickTimeVersion' was defined. (Rene Ros)
  1768.  
  1769.      See 'Reports' chapter (QuickTime section) for more information.
  1770. qtrs (QuickTime PowerPlug ext [1.0?])
  1771.      gestaltQuickTimeFeatures *AS06
  1772.      
  1773.      const
  1774.      gestaltQuickTimeFeatures      = 'qtrs'; {QT Features attributes}
  1775.      gestaltPPCQuickTimeLibPresent = 0;      {PowerPC QT glue library is}
  1776.                                              { present}
  1777.  
  1778.      NOTE:
  1779.      The gestaltPPCQuickTimeLibPresent bit indicates that the native
  1780.      QuickTime interface library is available and can be called by native
  1781.      PowerPC applications. (Dave Radcliffe)
  1782.      See for more info Technical Note
  1783.      'QT 01 - Inside Macintosh: QuickTime Addendum'.
  1784. ram  (System [6.0.4])
  1785.      gestaltPhysicalRAMSize
  1786.      Returns the number of bytes of the physical RAM currently installed.
  1787.  
  1788.      const
  1789.      gestaltPhysicalRAMSize = 'ram '; {physical RAM}
  1790. rbv  (System [6.0.4, discontinued?]) *AS04
  1791.      gestaltRBVAddr
  1792.      Returns the address of the RBV.
  1793.  
  1794.      const
  1795.      gestaltRBVAddr = 'rbv '; {RBV address}
  1796. reno (Apple Guide ext [1.2?], part of System 7.5 and later)
  1797.      ???
  1798.      Indicates presence "of the Reno system extension." (Reno is the
  1799.      mechanism behind Apple Guide for managing the help data-bases?)
  1800. rom  (System [6.0.4]) INF
  1801.      gestaltROMSize
  1802.      Returns the size of the installed ROM in bytes.
  1803.  
  1804.      const
  1805.      gestaltROMSize = 'rom '; {ROM size}
  1806.      
  1807.      NOTE:
  1808.      On Power Macintosh computers this selector returns the ROM size minus
  1809.      the 68K emulator portion, which uses about 1 MB. *AD18
  1810. romv (System [6.0.4]) INF
  1811.      gestaltROMVersion
  1812.      Returns the version number of the installed ROM.
  1813.  
  1814.      const
  1815.      gestaltROMVersion = romv'; {ROM version}
  1816. rsrc (System [should work since 7.0?])
  1817.      gestaltResourceMgrAttr
  1818.      Returns information about the Resource Manager.
  1819.  
  1820.      const
  1821.      gestaltResourceMgrAttr = 'rsrc'; {Resource Mgr attributes}
  1822.      gestaltPartialRsrcs    = 0;
  1823.      gestalt???             = 1;      {unknown}
  1824.  
  1825.      NOTE:
  1826.      Under System 7, bit 0 that tells if you have partial resource support
  1827.      doesn't work right. The selector is undefined under System 7.0 and
  1828.      7.0.1 even though the partial resource calls are available. This has
  1829.      been acknowledged by Apple. (Michael Hecht, Quinn)
  1830. rtmr (System? [7.1.1?])
  1831.      gestaltRealtimeMgrAttr
  1832.      Returns information about the Realtime Manager.
  1833.  
  1834.      const
  1835.      gestaltRealtimeMgrAttr    = 'rtmr'; {Realtime Mgr attributes}
  1836.      gestaltRealtimeMgrPresent = 0;      {Realtime Mgr is present}
  1837.  
  1838.      NOTE:
  1839.      If the RealTime Mgr is present this means the ARTA routines are
  1840.      available to determine if and how many DSPs are installed.
  1841.      (Zalman Stern)
  1842. sccr (System [6.0.4, discontinued]) *AS04
  1843.      gestaltSCCReadAddr
  1844.      Returns the address of SCC read ports.
  1845.  
  1846.      const
  1847.      gestaltSCCReadAddr = 'sccr'; {SCC read ports address}
  1848. sccw (System [6.0.4, discontinued]) *AS04
  1849.      gestaltSCCWriteAddr
  1850.      Returns the address of SCC write ports.
  1851.  
  1852.      const
  1853.      gestaltSCCWriteAddr = 'sccw'; {SCC write ports address}
  1854. scr# (System [6.0.4])
  1855.      gestaltScriptCount
  1856.      Returns the number of script systems currently active.
  1857.  
  1858.      const
  1859.      gestaltScriptCount = 'scr#'; {number of active scripts}
  1860. scra (Macintosh Easy Open cp [1.0]) *AD03
  1861.      gestaltScrapMgrAttr
  1862.      Returns information about the Scrap Manager.
  1863.  
  1864.      const
  1865.      gestaltScrapMgrAttr             = 'scra'; {Scrap Mgr attributes}
  1866.      gestaltScrapMgrTranslationAware = 0;
  1867. scri (System [6.0.4])
  1868.      gestaltScriptMgrVersion
  1869.      Returns the version number of the Script Manager as BCD.
  1870.  
  1871.      const
  1872.      gestaltScriptMgrVersion = 'scri'; {Script Mgr version}
  1873.  
  1874.      ======================================================================
  1875.      Version numbers for the Script Manager
  1876.      ======================================================================
  1877.      System Version       Script Mgr           Script Mgr          Version
  1878.                           (older ROMs)+        (newer ROMs)        format
  1879.      ----------------------------------------------------------------------
  1880.      6.0.3 and earlier    <= $20F              N.A.                binary
  1881.      6.0.4 Roman          $211                 $215                  "
  1882.      6.0.4 non-Roman      $212                 $216                  "
  1883.      6.0.5                $213                 $217 (=2.23)          "
  1884.  
  1885.      6.0.7                $230                 $231                BCD
  1886.      J-6.0.7.1            $230                 $231                 "
  1887.      6.0.8                $230                 $231                 "
  1888.      6.1 non-Roman        $240                 $241                 "
  1889.      7.0                  $700                 $700                 "
  1890.      7.0.1 Roman          $701                 $701                 "
  1891.      7.0.1 non-Roman      $701                 $701                 "
  1892.      7.1                  $710                 $710                 "
  1893.      7.5                  $720                 $720                 "
  1894.      7.5.1                $750                 $750                 "
  1895.  
  1896.      + Plus,SE,II,IIx,IIcx,SE/30,Classic
  1897.      ----------------------------------------------------------------------
  1898.      (Original source: Inside Macintosh Text, p. 6-9;
  1899.       Info on System 7.5 and later based on observations.)
  1900.  
  1901. scsi (System [7.1.2?])
  1902.      (SCSI Manager ext [4.3])
  1903.      gestaltSCSI *AT07
  1904.      Returns information about the SCSI Manager.
  1905.  
  1906.      const
  1907.      gestaltSCSI           = 'scsi'; {SCSI Manager attributes}
  1908.      gestaltAsyncSCSI      = 0;      {Supports asynchronous SCSI}
  1909.      gestaltAsyncSCSIINROM = 1;      {Async SCSI is in ROM}
  1910.                                      { (available for booting)}
  1911.      gestaltSCSISlotBoot   = 2;      {ROM supports Slot-style PRAM for}
  1912.                                      { SCSI boots}
  1913. sdev (Control Strip cp [1.0])
  1914.      gestaltControlStripAttr
  1915.      Returns information about the Control Strip software.
  1916.  
  1917.      const
  1918.      gestaltControlStripAttr         = 'sdev';
  1919.      gestaltControlStripExists       = 0;     {TRUE = control strip is}
  1920.                                               { installed}
  1921.      gestaltControlStripVersionFixed = 1;     {version of Control Strip}
  1922.                                               { installs 'csvr' selector}
  1923.                                               { instead of 'sdvr' *AS11}
  1924.  
  1925.      NOTE:
  1926.      A file 'IsControlStrip.c' included with the Apple Guide Authoring Kit
  1927.      defines this selector as:
  1928.        #define gestaltStatusBarAttr 'sdev'
  1929.        #define gestaltStatusBarExists 0
  1930.      (Rene Ros)
  1931. sdvr (PowerTalk ext [1.0?], part of PowerTalk)
  1932.      gestaltSDPStandardDirectoryVersion
  1933.      Returns the SDP Standard Directory version as INTEGER. Returns zero if
  1934.      not present and available.
  1935.  
  1936.      const
  1937.      gestaltSDPStandardDirectoryVersion = 'sdvr'; {SDP Standard Directory}
  1938.                                                   {version}
  1939.  
  1940.      WARNING:
  1941.      The same selector code is used by the Control Strip 1.0 control panel.
  1942.      See the gestaltControlStripVersion ('csvr') selector entry above.
  1943. ser  (System [6.0.8?])
  1944.      gestaltSerialAttr
  1945.      Returns information about the serial hardware of the machine.
  1946.  
  1947.      const
  1948.      gestaltSerialAttr  = 'ser '; {serial hardware attributes}
  1949.      gestaltGPIaToDCDa  = 0;
  1950.      gestaltGPIaToRTxCa = 1;
  1951.      gestaltGPIaToDCDb  = 2;
  1952. slmp (Shared Library Manager? ext [2.0?])
  1953.      (System? [7.5?])
  1954.      gestaltASLMPPC *AS17
  1955.  
  1956.      NOTE:
  1957.      See the gestaltASLM68K ('aslm') entry for more information.
  1958. slot (System [6.0.4, 6.0.5, discontinued])
  1959.      gestaltSlotAttr
  1960.      Returns information about the Slot Manager.
  1961.  
  1962.      const
  1963.      gestaltSlotAttr            = 'slot'; {Slot Mgr attributes}
  1964.      gestaltSlotMgrExists       = 0;
  1965.      gestaltNuBusPresent        = 1;
  1966.      gestaltSESlotPresent       = 2;
  1967.      gestaltSE30SlotPresent     = 3;
  1968.      gestaltPortableSlotPresent = 4;
  1969. slt1 (System [6.0.4, 6.0.5, discontinued])
  1970.      gestaltFirstSlotNumber
  1971.      Returns first slot number.
  1972.  
  1973.      const
  1974.      gestaltFirstSlotNumber = 'slt1'; {First Slot number}
  1975. sltc (System [6.0.8?])
  1976.      gestaltNuBusConnectors
  1977.      Returns information about the NuBus slot connector locations. The
  1978.      value returned is a bitmap. If bits 9 to E are set, there are six
  1979.      slots present with locations 9 to E.
  1980.  
  1981.      const
  1982.      gestaltNuBusConnectors = 'sltc'; {NuBus connector bitmap}
  1983.  
  1984.      NOTE:
  1985.      This selector does not return information about the PDS slot (with
  1986.      or without NuBus adapter). Also, it is unknown if this selector also
  1987.      includes slot $8 which was added with the Power Macintosh 8100/110.
  1988.      (John Mancino)
  1989. snd  (System [6.0.4])
  1990.      gestaltSoundAttr
  1991.      Returns information about the sound capabilities of the machine.
  1992.  
  1993.      const
  1994.      gestaltSoundAttr           = 'snd '; {sound attributes}
  1995.      gestaltStereoCapability    =  0;     {can play stereo sounds}
  1996.      gestaltStereoMixing        =  1;     {mixes channels into single}
  1997.                                           { signal}
  1998.      gestaltSoundReserved       =  2;
  1999.      gestaltSoundIOMgrPresent   =  3;     {new sound input routines avail.}
  2000.      gestaltBuiltInSoundInput   =  4;     {built-in sound input device
  2001.                                           { available}
  2002.      gestaltHasSoundInputDevice =  5;     {some sound input device avail.}
  2003.      gestaltPlayAndRecord       =  6;     {built-in hardware can play and}
  2004.                                           { record simultaneously}
  2005.                                           { *AS03/AS04}
  2006.      gestalt16BitSoundIO        =  7;     {sound hardware can play and}
  2007.                                           { record 16-bit samples *AS04}
  2008.      gestaltStereoInput         =  8;     {sound hardware can record}
  2009.                                           { stereo *AS04}
  2010.      gestaltLineLevelInput      =  9;     {sound input port requires}
  2011.                                           { line level *AS04}
  2012.      gestaltSndPlayDoubleBuffer = 10;     {play from disk available *AS04}
  2013.      gestaltMultiChannels       = 11;     {multiple channel support}
  2014.                                           { *AS03/AS04}
  2015.      gestalt16BitAudioSupport   = 12;     {16 bit audio data supported}
  2016.                                           { *AS04}
  2017.  
  2018.      NOTES:
  2019.      Bit 7 through 12 are not defined for versions of the Sound Manager
  2020.      prior to version 3.0.
  2021.  
  2022.      With the Enhanced Sound Manager (version 2) you have both multi-
  2023.      channel and play-from-disk capability if the Apple Sound Chip is
  2024.      available. But the gestaltSndPlayDoubleBuffer and gestaltMultiChannels
  2025.      bits are not set. Test for the gestaltHasASC bit of the
  2026.      gestaltHardwareAttr selector. *AD06/AD20
  2027. snhw (System [7.5])
  2028.      (Sound Manager ext [3.0])
  2029.      gestaltSoundHardware
  2030.      Returns type of hardware used for sound?
  2031.  
  2032.      const
  2033.      gestaltSoundHardware = 'snhw'; {Sound Hardware}
  2034.      gestaltASC           = 'asc '; {ASC}
  2035.      gestaltDSP           = 'dsp '; {DSP}
  2036.      gestaltClassicSound  = 'clas'; {Classic Mac?}
  2037.      gestaltAWAC?         = 'awac'; {returned on PowerMac}
  2038.      gestaltSing?         = 'sing'; {returned on PB 540c}
  2039. spsl (PowerTalk ext [1.0?], part of PowerTalk)
  2040.      gestaltSMPSPSendLetterVersion
  2041.      Returns the SMP SendLetter version as INTEGER. Returns zero if not
  2042.      present and available.
  2043.  
  2044.      const
  2045.      gestaltSMPSPSendLetterVersion = 'spsl'; {SMP Sendletter version}
  2046. stdf (System [7.0])
  2047.      (Macintosh Easy Open cp [1.0?])
  2048.      gestaltStandardFileAttr
  2049.      Returns information about the Standard File Package.
  2050.  
  2051.      const
  2052.      gestaltStandardFileAttr             = 'stdf';{Standard File attr.}
  2053.      gestaltStandardFile58               = 0;
  2054.                           {StandardPutFile, StandardGetFile, CustomPutFile}
  2055.                                        { and CustomGetFile  are available.}
  2056.      gestaltStandardFileTranslationAware = 1; {*AD03/AS04}
  2057.      gestaltStandardFileHasColorIcons    = 2; {*AD03/AS04/AS05}
  2058.      gestaltStandardFileUseGenericIcons  = 3; {force the LDEF to use only}
  2059.                                               { the system generic icons}
  2060.                                               { *AT06}
  2061.      gestaltStandardFileHasDynamicVolumeAllocation = 4;
  2062.                                       {supports more than 20 volumes *AT06}
  2063. sysa (System [7.1.2?]) *AS04
  2064.      gestaltSysArchitecture
  2065.      Returns one of the following values, indicating the type of
  2066.      architecture on which the application is currently running.
  2067.  
  2068.      const
  2069.      gestaltSysArchitecture = 'sysa'; {System Architecture type}
  2070.      gestalt68k             = 1;
  2071.      gestaltPowerPC         = 2;
  2072. sysv (System [6.0.4]) INF
  2073.      gestaltSystemVersion
  2074.      Returns the version number of the currently active System file as BCD.
  2075.  
  2076.      const
  2077.      gestaltSystemVersion = 'sysv'; {System file version}
  2078.  
  2079.      NOTES:
  2080.      In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
  2081.      versions return $0606. See the 'osyv' selector.
  2082.      System J-6.0.7.1 returns $0609
  2083.  
  2084.      System 6.0.8 returns $0x0607 because only the printer drivers were
  2085.      added. You can't determine if it is actually 6.0.8 in another way.
  2086.  
  2087.      There are some system versions (like International System 6.0.8.1 or
  2088.      7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
  2089.      7.0.1.
  2090.      
  2091.      System 7.1.2 (for Power Macintosh) apparently returns an incorrect
  2092.      version number ($0710) when in 68K mode with a PPC Upgrade card.
  2093.      (Rick Gansler)
  2094.  
  2095.      System 7.5 Update 1.0 makes this selector return $0x751. (Anonymous)
  2096. tabl (System [6.0.4])
  2097.      gestaltSelectorTable?
  2098.      Returns a handle to the Gestalt selector table itself.
  2099.  
  2100.      const
  2101.      gestaltSelectorTable? = 'tabl'; {Gestalt Table address}
  2102.  
  2103.      WARNING:
  2104.      Although this information isn't officially confirmed, it is probably
  2105.      correct. But it is likely to go away in future systems.
  2106.  
  2107.      NOTE:
  2108.      The Gestalt selector table is kept in a resizable block in the system
  2109.      heap. The last item in the table is a dummy entry (INVALID), marked by
  2110.      a selector OSType(MaxLongInt). (Marco Piovanelli, he also has some
  2111.      snippet Pascal code to list all selectors)
  2112.      With System 7.5 each item in the table now contains three parts:
  2113.      the selector, an information field and a field with either a pointer
  2114.      or a value. If the information field (or only bit 0) is 1, a value is
  2115.      stored, otherwise a pointer to the gestalt function. (Eric-Paul Rebel)
  2116. tbtt (System [6.0.8])
  2117.      gestaltToolboxTable
  2118.      Returns the base address of the Toolbox trap table.
  2119.  
  2120.      const
  2121.      gestaltToolboxTable = 'tbtt'; {Toolbox trap table base}
  2122. te   (System [6.0.5])
  2123.      gestaltTextEditVersion
  2124.      Returns a value that indicates which version of TextEdit is present.
  2125.  
  2126.      const
  2127.      gestaltTextEditVersion = 'te  '; {TextEdit version}
  2128.      gestaltTE1             = 1;
  2129.      gestaltTE2             = 2;
  2130.      gestaltTE3             = 3;
  2131.      gestaltTE4             = 4;
  2132.      gestaltTE5             = 5;
  2133.  
  2134.      ======================================================================
  2135.      Version numbers for TextEdit
  2136.      ======================================================================
  2137.      Returned value       New Features           System software   Hardware
  2138.      ----------------------------------------------------------------------
  2139.      gestaltUndefSelector Multistyled TE         before 6.0.4      all
  2140.      gestaltTE1                                  6.0.4 Roman       IIci
  2141.      gestaltTE2           New width              6.0.4 non-Roman   IIci
  2142.                           measurement hook
  2143.                           Script Mgr compatible
  2144.      gestaltTE3                                  6.0.4 non-Roman   non-IIci
  2145.      gestaltTE4           TEFeatureFlag          6.0.5             all
  2146.      gestaltTE5           Text width             7.0               all
  2147.                           measurement hook
  2148.      ----------------------------------------------------------------------
  2149.      (Source: Inside Macintosh Text, p.2-23)
  2150.  
  2151.      NOTE:
  2152.      The inline input features (also in TextEdit version 5) are also
  2153.      available with System 6.0.7 using non-Roman script systems, but there
  2154.      is no Gestalt constant that indicates this availability. *AD19
  2155. teat (Macintosh Drag and Drop ext [1.0])
  2156.      gestaltTEAttr *AD05
  2157.      Returns information about the functions and capabilities of TextEdit.
  2158.  
  2159.      const
  2160.      gestaltTEAttr            = 'teat'; {TextEdit attributes}
  2161.      gestaltTEHasGetHiliteRgn = 0;      {TEGetHiliteRgn present}
  2162. tele (System [7.5])
  2163.      (Telephone Manager Extension ext [2.0?], part of Apple Telecom)
  2164.      gestaltTelephoneMgrAttr?
  2165.      Returns information about the Telephone Mgr.
  2166.  
  2167.      const
  2168.      gestaltTelephoneMgrAttr?         = 'tele';
  2169.      gestaltTelephoneMgrPresent       = 0;
  2170.      gestaltPPCTelephoneLibPresent?   = 1;
  2171.      gestaltTelephoneMgr???           = 2;      {installed by version 2.0}
  2172.      gestaltTelephoneMgr???           = 3;      {installed by version 2.0}
  2173.      gestaltTelephoneMgr???           = 4;      {installed by version 2.0}
  2174.      gestaltTelephoneMgr???           = 5;      {installed by version 2.0}
  2175.      gestaltTelephoneMgr???           = 6;      {installed by version 2.0}
  2176. term (System [7.1])
  2177.      gestaltTermMgrAttr
  2178.      Returns information about the Terminal Manager.
  2179.  
  2180.      const
  2181.      gestaltTermMgrAttr        = 'term'; {Terminal Mgr attributes}
  2182.      gestaltTermMgrPresent     = 0;      {Terminal Mgr is present}
  2183.      gestaltTermMgrErrorString = 2;      {*AS04}
  2184. thds (Thread Manager ext [1.1]) *AD04
  2185.      (QuickDraw GX ext [1.0?])
  2186.      (System [7.1.2?])
  2187.      gestaltThreadAttr
  2188.      Returns information about the Thread Manager.
  2189.  
  2190.      const
  2191.      gestaltThreadAttr            = 'thds'; {Thread Manager attributes}
  2192.      gestaltThreadsPresent        = 0;      {bit true if Threads present}
  2193.      gestaltSpecificMatchSupport  = 1;      {bit true if ‘exact match’}
  2194.                                             { API supported}
  2195.      gestaltThreadsLibraryPresent = 2;      {bit true if ThreadsLib is}
  2196.                                             { present}
  2197.      gestalt???                   = 3;      {unknown, System 7.5.1}
  2198.      gestaltSchedulerFix?         = 4;      {preemptive scheduler fix}
  2199.                                             { present?}
  2200.  
  2201.      NOTE:
  2202.      IM OS Utilities lists this selector as 'gestaltThreadMgrAttr'.
  2203. tmgr (System [6.0.4])
  2204.      gestaltTimeMgrVersion
  2205.      Returns a value that indicates the version of the Time Manager.
  2206.  
  2207.      const
  2208.      gestaltTimeMgrVersion  = 'tmgr'; {Time Mgr version}
  2209.      gestaltStandardTimeMgr = 1;      {Standard Time Mgr}
  2210.      gestaltRevisedTimeMgr  = 2;      {Revised Time Mgr}
  2211.      gestaltExtendedTimeMgr = 3;      {Extended Time Mgr}
  2212. tpad (System? [7.5?] on PowerBook 520/540?)
  2213.      Indicates precense of a trackpad? As such used in the 'IsTrackPad.c'
  2214.      file included with the Apple Guide Authoring Kit.
  2215. tsma (System? [???])
  2216.      gestaltTSMgrAttr *AS14
  2217.      Returns information about the Text Services Manager.
  2218.  
  2219.      const
  2220.      gestaltTSMgrAttr             = 'tsma'; {Text Services Mgr attributes}
  2221.      gestaltTSMDisplayMgrAwareBit = 0;      {TSM knows about Display Mgr}
  2222. tsmv (System [7.1])
  2223.      gestaltTSMgrVersion *AT05
  2224.      Returns Text Services Manager version in BCD.
  2225.  
  2226.      const
  2227.      gestaltTSMgrVersion = 'tsmv'; {Text Services Mgr version}
  2228. tv   (System? [???])
  2229.      (Video Startup ext [1.0], part of European Video Installer)
  2230.      gestaltTVAttr *AS14
  2231.      Returns information about the TV capabilities?
  2232.  
  2233.      const
  2234.      gestaltTVAttr                = 'tv  '; {TV Version [huh? ed.]}
  2235.      gestaltHasTVTuner            = 0;      {supports Philips FL1236F}
  2236.                                             { video tuner}
  2237.      gestaltHasSoundFader         = 1;      {supports Philips TEA6330}
  2238.                                             { Sound Fader chip}
  2239.      gestaltHasHWClosedCaptioning = 2;      {supports Philips SAA5252}
  2240.                                             { Closed Captioning}
  2241.      gestaltHasIRRemote           = 3;      {supports CyclopsII Infra Red}
  2242.                                             { Remote Control}
  2243.      gestaltHasVidDecoderScaler   = 4;      {supports Philips SAA7194}
  2244.                                             { Video Decoder/Scaler}
  2245.      gestaltHasStereoDecoder      = 5;      {supports Sony SBX1637A-01}
  2246.                                             { stereo decoder}
  2247.  
  2248.      NOTE:
  2249.      A Power Macintosh 6100/66 with AV card and System 7.5.1 had both bit
  2250.      3 and 4 set. A Quadra 605 and LC475 (both with System 7.5.1) only had
  2251.      bit 3 set. Where is the remote control, then? Selector not installed
  2252.      on Quadra 700 and PB Duo 210 (also System 7.5.1).
  2253.      (John Tsombakos, Rene Ros)
  2254.      An LC630 didn't had bit 5 set, while it is supposed to have a stereo
  2255.      decoder. (Eric-Paul Rebel)
  2256. ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *AT03
  2257.      gestaltForeignFileAccessVersion?
  2258.      Returns Foreign File Access version in BCD.
  2259.  
  2260.      const
  2261.      gestaltForeignFileAccessVersion? = 'ufox';
  2262.                                               {Foreign File Access version}
  2263.  
  2264.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  2265. vers (System [6.0.4])
  2266.      gestaltVersion
  2267.      Returns the version of Gestalt as INTEGER.
  2268.  
  2269.      const
  2270.      gestaltVersion = 'vers'; {Gestalt version}
  2271.  
  2272.      NOTE:
  2273.      Usually version 1 is present. On machines with ROM version 1917
  2274.      (Quadra 840AV, PowerMacs etc.) version 4 is present.
  2275.      Version 5 is installed by System 7.5 adding support for the
  2276.      GestaltValue calls? And version 6 is installed by System 7.5
  2277.      Update 1.0? (Rene Ros, Anonymous)
  2278. via1 (System [6.0.4, discontinued])
  2279.      gestaltVIA1Addr
  2280.      Returns the address of VIA 1.
  2281.  
  2282.      const
  2283.      gestaltVIA1Addr = 'via1'; {VIA 1 address}
  2284. via2 (System [6.0.4, discontinued])
  2285.      gestaltVIA2Addr
  2286.      Returns the address of VIA 2.
  2287.  
  2288.      const
  2289.      gestaltVIA2Addr = 'via2'; {VIA 2 address}
  2290. vm   (System [6.0.4])
  2291.      gestaltVMAttr
  2292.      Returns information about virtual memory.
  2293.  
  2294.      const
  2295.      gestaltVMPresent      = 0; {set; virtual memory present}
  2296.      gestaltVMNotInstalled = 0; {clear; virtual memory not present}
  2297.  
  2298.      NOTE:
  2299.      Future OS may have VM always on but this is not reported by this
  2300.      selector. A future selector will tell if the microkernal is running
  2301.      and thus if VM is actually used. *AD10
  2302. wma. (System [7.0])
  2303.      (Responder ext [2.0?])
  2304.      gestaltResponderAttr
  2305.      Returns information about the Workstation Management Agent a.k.a.
  2306.      Responder.
  2307.  
  2308.      const
  2309.      gestaltResponderAttr    = 'wma.'; {Responder attributes}
  2310.      gestaltResponderPresent = 0;      {Responder is present}
  2311. xlat (Macintosh Easy Open cp [1.0]) *AD03
  2312.      gestaltTranslationAttr
  2313.      Returns information about the Translation Manager.
  2314.  
  2315.      const
  2316.      gestaltTranslationAttr            = 'xlat'; {Translation Mgr attrib.}
  2317.      gestaltTranslationMgrExists       = 0;      {TM present}
  2318.      gestaltTranslationMgrHintOrder    = 1;      {TRUE if hint order}
  2319.                                                  { reversal bug is fixed}
  2320.      gestaltTranslationPPCAvail        = 2;      {PPC Lib. available}
  2321.      gestaltTranslationGetPathAPIAvail = 3;      {GetFileTranslationPath}
  2322.                                    {and GetPathTranslationDialog available}
  2323.      gestalt???                        = 4;      {by MEO 1.1 and later}
  2324. xttt (System [6.0.8])
  2325.      gestaltExtToolboxTable
  2326.      Returns the base address of the second half of the Toolbox trap table
  2327.      if the table is discontiguous. If the table is contiguous, this
  2328.      selector returns zero. *AD19
  2329.  
  2330.      const
  2331.      gestaltExtToolboxTable = 'xttt'; {Extended Toolbox trap table}
  2332.  
  2333.      NOTE:
  2334.      This selector may be installed but returns gestaltUnknownErr instead
  2335.      of zero when the table is contiguous? (Rene Ros)
  2336.  
  2337. Apple Additional Software
  2338. -------------------------
  2339. arb  (Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
  2340.      gestaltArbitorAttr *AD02
  2341.      Returns information about the Serial Port Arbitration.
  2342.  
  2343.      const
  2344.      gestaltArbitorAttr             = 'arb '; {Serial Port Arbitration}
  2345.                                               { attributes}
  2346.      gestaltSerialArbitrationExists = 0;      {Serial Port Arbitration}
  2347.                                               { installed}
  2348. cltn (QuickDraw GX [1.0])
  2349.      gestaltCollectionMgrVersion
  2350.      Returns the version of the Collection Manager as NumVersion.
  2351.  
  2352.      const
  2353.      gestaltCollectionMgrVersion = 'cltn'; {Collection Mgr version}
  2354.  
  2355.      NOTE:
  2356.      The Collection Manager is a set of routines for maintaining tagged
  2357.      collections of data; GX uses it to support the "tags" that you can
  2358.      attach to GX objects, for holding special data, including
  2359.      user-defined data. (Lawrence D'Oliveiro)
  2360. gc24 (8*24 GC cp [???])
  2361.      gestaltGC24? *M07
  2362.      Returns the version of the 8*24 GC software for the Macintosh
  2363.      Display Card 8*24 GC as BCD?
  2364.  
  2365.      const
  2366.      gestaltGC24? = 'gc24';
  2367.  
  2368.      NOTE:
  2369.      This selector is also installed when no card is available. A value
  2370.      returned when no card is installed is $FFFF D8EB.
  2371. gfxa (QuickDraw GX [1.0])
  2372.      gestaltGraphicsAttr
  2373.      Returns information about the Graphics.
  2374.  
  2375.      const
  2376.      gestaltGraphicsAttr        = 'gfxa'; {graphics attributes bits }
  2377.      gestaltGraphicsIsDebugging = $0001;
  2378.      gestaltGraphicsIsLoaded    = $0002;
  2379.      gestaltGraphicsIsPowerPC   = $0004;
  2380.  
  2381.      NOTE: Not bit values but bit masks? Use AND?
  2382. grfx (QuickDraw GX ext [1.0])
  2383.      gestaltGraphicsVersion
  2384.      Returns the version of the Graphics as ???.
  2385.  
  2386.      const
  2387.      gestaltGraphicsVersion        = 'grfx';    {Gestalt version selector}
  2388.      gestaltCurrentGraphicsVersion = $00010000; {supposed value returned}
  2389. kids (At Ease [1.0])
  2390.      kAtEaseGestalt
  2391.      Returns a handle to a structure holding information about At Ease.
  2392.  
  2393.      The following code was published by Apple *AT06:
  2394.  
  2395.      #define kAtEaseGestalt    'kids'
  2396.      typedef struct {
  2397.        short  giVersion;         /* structure version */
  2398.        short  giIsActive;        /* true if at ease is currently running */
  2399.        short  giAutoCreateAlias; /* if true then auto create alias */
  2400.        short  giRequestFloppy;   /* if true then request floppy on new
  2401.                                     saves */
  2402.        short  giStacksAreApps;   /* if true then HyperCard stacks are shown
  2403.                                     with applications */
  2404.        FSSpec giItemsLocation;   /* location of the At Ease Items folder */
  2405.      } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
  2406. mess (QuickDraw GX [1.0])
  2407.      gestaltMessageMgrVersion
  2408.      Returns the version of the Message Manager as ???.
  2409.  
  2410.      const
  2411.      gestaltMessageMgrVersion = 'mess'; {Message Mgr version}
  2412.  
  2413.      NOTE:
  2414.      The Message Manager is an implementation of object-oriented-style
  2415.      message passing within an inheritance hierarchy, that can be used from
  2416.      non-OO languages.
  2417.      It is used by the GX printing system, to allow the customization of
  2418.      printing behaviour by letting applications (and developers of printing
  2419.      extensions) intercept messages sent to the printer driver.
  2420.      (Lawrence D'Oliveiro)
  2421. mtv2 (Video Player app [???])
  2422.      (Video Startup ext [1.0], part of European Video Installer)
  2423.      gestaltTV *AD16
  2424.      "Indicates whether the Video Player app is present."
  2425. pmgr (QuickDraw GX [1.0])
  2426.      gestaltGXPrintingMgrVersion
  2427.      Returns the version of the QuickDraw GX Printing Manager as ???.
  2428.  
  2429.      const
  2430.      gestaltGXPrintingMgrVersion = 'pmgr'; {QD GX Printing Mgr version}
  2431.  
  2432.      NOTE:
  2433.      The QuickDraw GX documentation lists this selector incorrectly as
  2434.      'gestaltPrintingMgrVersion'. (Ken Prehoda)
  2435. qd3d (QuickDraw 3D ext? [1.0?])
  2436.      gestaltQD3D
  2437.      Returns if QuickDraw 3D is installed or not (no attribute bits?).
  2438.  
  2439.      const
  2440.      gestaltQD3D           = 'qd3d';
  2441.      gestaltQD3DNotPresent = 0;
  2442.      gestaltQD3DAvailable  = 1;
  2443.  
  2444.      WARNING:
  2445.      Info from QuickDraw 3D Alpha 2 headers, may change before going
  2446.      final! (Anonymous)
  2447. qdgx (QuickDraw GX [1.0])
  2448.      gestaltGXVersion
  2449.      Returns the version of QuickDraw GX as ???.
  2450.  
  2451.      const
  2452.      gestaltGXVersion = 'qdgx'; {QuickDraw GX version}
  2453.      
  2454.      NOTE:
  2455.      Both the values $0100 8000 and $0001 0001 were observed.
  2456. srta (Speech Recognition ext [1.2.1?])
  2457.      gestaltSpeechRecognitionAttr
  2458.      Returns information about the Speech Recognition software.
  2459.  
  2460.      const
  2461.      gestaltSpeechRecognitionAttr      = 'srta';
  2462.      gestaltDesktopSpeechRecognition   = 0;      {Recognition using mic.}
  2463.      gestaltTelephoneSpeechRecognition = 1;      {FUTURE}
  2464.  
  2465.      NOTE:
  2466.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  2467.      selector is installed on all machines and the response value will
  2468.      indicate the speech recognition is available. (Rene Ros)
  2469. srtb (Speech Recognition ext [1.2.1?])
  2470.      gestaltSpeechRecognitionVersion
  2471.      Returns the version of the Speech Recognition software as BCD.
  2472.  
  2473.      const
  2474.      gestaltSpeechRecognitionVersion = 'srtb';
  2475.  
  2476.      NOTE:
  2477.      The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
  2478.      selector is installed on all machines and its presence will indicate
  2479.      the speech recognition is available. (Rene Ros)
  2480. strm (Remote Access Aliases [1.0], part of Apple Remote Access)
  2481.      gestaltRemoteAccessAttr *AD02
  2482.  
  2483.      const
  2484.      gestaltRemoteAccessAttr     = 'strm'; {Remote Access attributes}
  2485.      gestaltRemoteAccessExists   = 0;      {ARA Connection Interface is}
  2486.                                            { available}
  2487.      gestaltRemoteAccessCallOnly = 1;      {checks for ARA client *AD15}
  2488.      gestaltRemoteAccessMPServer = 2;      {checks for ARA multi-port}
  2489.                                            { server *AD15}
  2490.      gestaltRemoteAccessVers2    = 3;      {checks for ARA 2.0 features}
  2491.                                            { *AD15}
  2492. tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
  2493.      gestaltTSMTEAttr *AS07
  2494.      Returns information about the Text Services Manager for TextEdit.
  2495.  
  2496.      const
  2497.      gestaltTSMTEAttr    = 'tmTE'; {TSM for TE attributes}
  2498.      gestaltTSMTEPresent = 0;      {TSM for TE is present}
  2499.      gestaltTSMTE        = gestaltTSMTEPresent;
  2500. tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
  2501.      gestaltTSMTEVersion *AS07
  2502.      Returns the version of the Text Services Manager for TextEdit as BCD.
  2503.  
  2504.      const
  2505.      gestaltTSMTEVersion = 'tmTV'; {TSM for TE version}
  2506.      gestaltTSMTE1       = $0100;  {TSM for TE version 1.0}
  2507. ttsc (Text-To-Speech Manager ext [1.0?])
  2508.      gestaltSpeechAttr
  2509.      Returns information about the Speech Manager.
  2510.  
  2511.      const
  2512.      gestaltSpeechAttr       = 'ttsc'; {Text-To-Speech Manager attrib.}
  2513.      gestaltSpeechMgrPresent = 0;      {bit true if Speech Mgr present}
  2514.      gestaltSpeechHasPPCGlue = 1;      {Speech Mgr has native PPC glue}
  2515.  
  2516.      NOTE:
  2517.      With System 7.5.1 on a PowerBook Duo 210 this selector had both
  2518.      bits set indicating the PPC Glue is available, while it is not.
  2519.      (Rene Ros)
  2520. ws 1 (WorldScript I ext [7.1?])
  2521.      gestaltWorldScriptIVersion?
  2522.      Returns version of WorldScript I software as BCD.
  2523.  
  2524.      const
  2525.      gestaltWorldScriptIVersion? = 'ws 1';
  2526. XTND (??? [???])
  2527.      gestaltXTNDAttr *AS10
  2528.      Returns information about XTND Manager?
  2529.  
  2530.      const
  2531.      gestaltXTNDAttr       = 'XTND';
  2532.      gestaltPPCXTNDPresent = 1;
  2533.  
  2534.      NOTE:
  2535.      Is used in some code to check if XTND engine is present. However it is
  2536.      unknown when it is installed, so supposedly it is meant for future
  2537.      use. Like a built-in XTND engine in the System Software? When the
  2538.      selector is installed all operations are dispatched through trap
  2539.      _XTNDMgr ($ABF4) otherwise the library provides the code.
  2540.      (Marco Piovanelli)
  2541.  
  2542. Third Parties Software
  2543. ----------------------
  2544. !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
  2545.      gestaltSymbiontsTable
  2546.      Returns a pointer to a structure containing the size of the System
  2547.      Heap before and after loading the INITs.
  2548.  
  2549.      const
  2550.      gestaltSymbiontsTable = '!SYM'; {Symbionts address}
  2551. ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
  2552.      gestaltAfterDarkFolder *M05
  2553.      Returns a pointer to a procedure that gives the DirID and vRefNum of
  2554.      the 'After Dark Files' folder.
  2555.  
  2556.      const
  2557.      gestaltAfterDarkFolder = 'ADfd';
  2558.  
  2559.      NOTE:
  2560.      See for more information the AfterDark Gestalt header file. It
  2561.      is available by sending an email to
  2562.      gestalt-selectors-list-request@bio.vu.nl using the command
  2563.      'archive get src/AfterDarkGestalt.h'
  2564.      Or by emailing to Berkeley Systems Mac Tech Support at
  2565.      brklysystm@aol.com and ask them for the AfterDarkGestalt.h file.
  2566. ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
  2567.      gestaltAfterDarkAttr *M05
  2568.      Returns a longword bitmask containing public information about
  2569.      After Dark.
  2570.  
  2571.      const
  2572.      gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
  2573.      eSystemIQActive      = 0;      {SystemIQx activity monitor active}
  2574.      eSoundActive         = 1;      {AD has allocated a sound channel}
  2575.      eADAcquiringPassword = 2;      {After Dark has its password dialog up}
  2576.  
  2577.      NOTE:
  2578.      See for more information the AfterDark Gestalt header file. It
  2579.      is available by sending an email to
  2580.      gestalt-selectors-list-request@bio.vu.nl using the command
  2581.      'archive get src/AfterDarkGestalt.h'
  2582.      Or by emailing to Berkeley Systems Mac Tech Support at
  2583.      brklysystm@aol.com and ask them for the AfterDarkGestalt.h file.
  2584. AlaC (A La Carte ext [1.1?] by Denali Software Development)
  2585.      gestaltALaCarte?
  2586.      Returns the address of the A La Carte INIT global data. The structure
  2587.      of the data is proprietary.  The existence of the 'AlaC' selector
  2588.      indicates that the A La Carte INIT is loaded.
  2589.  
  2590.      const
  2591.      gestaltALaCarte? = 'AlaC';
  2592. ApoL (Apollo ext [1.0] by Jeremy Roussak)
  2593.      gestaltApolloTable
  2594.      Returns a handle to an instance of a structure.
  2595.  
  2596.      const
  2597.      gestaltApolloTable = 'ApoL'; {Apollo address}
  2598.  
  2599.      NOTE:
  2600.      See for more information the Programmers' Information chapter in the
  2601.      Apollo documentation. (Jeremy Roussak)
  2602. ASHI (Arashi app [???] by Juri Munkki)
  2603.      ???
  2604.      Returns information about the presence of Arashi by returning one (1)
  2605.      if loaded, and zero (0) when removed.
  2606. AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
  2607.      gestaltAutoBuildVersion
  2608.      Returns the version of AutoBuild as NumVersion.
  2609.  
  2610.      const
  2611.      gestaltAutoBuildVersion = 'AuBu'; {AutoBuild version}
  2612.  
  2613.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  2614. BBlk (Basic Black cp [1.3], by Mason L. Bliss)
  2615.      gestaltBasicBlackAddr
  2616.      Returns the address of Basic Black's patch globals.
  2617.  
  2618.      const
  2619.      gestaltBasicBlackAddr = 'BBlk'; {Basic Black address}
  2620.  
  2621.      NOTE:
  2622.      See documentation included with Basic Black for more information.
  2623. BIFF (QM Biff ext [1.0] by Patrick C. Beard)
  2624.      ???
  2625.      Determines if there is mail (QuickMail). The response long word is 1
  2626.      if you have mail, and 0 if you don't.
  2627. Cafe (Coffee Break appl [1.0] by Thomas Reed)
  2628.      gestaltCoffeeBreakAddr?
  2629.      Returns a pointer to a code resource owned by Coffee Break.
  2630.      Details are private.
  2631.  
  2632.      const
  2633.      gestaltCoffeeBreakAddr? = 'Cafe';
  2634. CKI3 (AETracker cp [3.0] by C.K. Haun)
  2635.      kAETrackerGestalt
  2636.      This selector returns a pointer to the external interface routine for
  2637.      AETracker, details of which are in the AETracker interface guide.
  2638.      (C.K. Haun)
  2639.  
  2640.      const
  2641.      kAETrackerGestalt = 'CKI3'; {AETracker address}
  2642. CsWT (Desktop Strip cp [1.0b1] by Sigurdur Asgeirsson)
  2643.      gestaltDesktopStripAttr?
  2644.      Returns information about the installed Desktop Strip software.
  2645.  
  2646.      const
  2647.      gestaltDesktopStripAttr?    = 'CsWT';
  2648.      gestaltDesktopStripPresent? = 0;
  2649. dBgP (DBugR cp [1.0?] by Alessandro Levi Montalcini)
  2650.      ???
  2651.      Returns a pointer to a data structure with the preferences,
  2652.      identical to the data in the PREF resource, for which a template
  2653.      is included.
  2654.  
  2655.      NOTE: The d is actually the option-d character ($B6).
  2656. EagL (Eagle ext [1.4], part of Apollo 1.1 by Jeremy Roussak)
  2657.      gestaltEagleAttr?
  2658.      Returns information about the state of the Eagle background
  2659.      application.
  2660.  
  2661.      const
  2662.      gestaltEagleAttr?     = 'EagL'; {Eagle attributes}
  2663.      gestaltEaglePPCReady? = 0;      {Eagle can accept next PPC}
  2664. FPUE (SoftwareFPU cp [3.0?] by John Neil & Associates) *M06
  2665.      gestaltSoftwareFPUAddr?
  2666.      Detects presence of SoftwareFPU.
  2667.      If the result of the Gestalt call is noErr, then SoftwareFPU is
  2668.      installed, and the 68881 FPU reported by the gestaltFPUType selector
  2669.      is an emulated FPU. The value returned in the response is private and
  2670.      should be ignored.
  2671.  
  2672.      const
  2673.      gestaltSoftwareFPUAddr? = 'FPUE';
  2674. FrcP (Decor cp [1.0] by Francois Pottier)
  2675.      gestaltDecorAddr
  2676.      Returns a pointer to a structure which can be read or changed, and
  2677.      enables programmers to change the picture on the desktop.
  2678.  
  2679.      const
  2680.      gestaltDecorAddr = 'FrcP'; {Decor address}
  2681.  
  2682.      NOTES:
  2683.      See for more information on how to use this structure the
  2684.      documentation included with Decor 1.0 or later.
  2685.  
  2686.      The c is actually the option-c character ($8D).
  2687. FWRT (FullWrite app [2.0] by Akimbo Systems)
  2688.      gestaltFullWriteInfo
  2689.      Returns a handle to a FullWrite callbacks data structure when
  2690.      FullWrite is currently running. If it is not running 0 (zero) is
  2691.      returned.
  2692.  
  2693.      const
  2694.      gestaltFullWriteInfo = 'FWRT';
  2695.  
  2696.      NOTE:
  2697.      See for more information the FullWrite Extension SDK (For more
  2698.      information contact Akimbo Systems by email at FullWrite@akimbo.com)
  2699. Gast (Gestalt! appl [2.9.2] by Roland Mansson)
  2700.      gestaltGestaltVersion
  2701.      Returns the version of the application as NumVersion.
  2702.      GestaltValue is removed when application quits. Just for fun.
  2703.      (Roland Mansson)
  2704.  
  2705.      const
  2706.      gestaltGestaltVersion = 'Gast'; {Gestalt! version}
  2707.  
  2708.      NOTE: The a is actually the option-u/a character ($8A).
  2709. GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
  2710.      ???
  2711.      Snippet code, see documentation.
  2712. GWat (GestaltWatch ext [1.0] by Scot Bronson)
  2713.      ???
  2714.      Returns pointer to structure where collected information is stored.
  2715.  
  2716.      NOTE: In development, not yet available.
  2717. ICTE (ICeTEe ext [1.1], part of Internet Config
  2718.                         by Quinn “The Eskimo!” and Peter N. Lewis)
  2719.      gestaltInternetConfigTEAddr?
  2720.      Returns the address of a record which is documented in the
  2721.      IC Programmer's Kit.
  2722.  
  2723.      gestaltInternetConfigTEAddr? = 'ICTE';
  2724. IF 8 (Speak Note cp [???] by Glenn R. Howes)
  2725.      gestaltSpeechNoteAttr?
  2726.      Returns information about the installed copy of Speak Note.
  2727.  
  2728.      const
  2729.      gestaltSpeechNoteAttr?     = 'IF 8';
  2730.      gestaltSpeechNoteAvailable = 0;
  2731. JMBe (Traceroute Ethernet LAP [1.0] by Jim Browne)
  2732.      gestalt???
  2733.      Returns the address of a structure as documented in the header file
  2734.      'RawIP.h' to allow application programs to perform Raw IP writes and
  2735.      filter all incoming IP packets.
  2736.      
  2737.      gestalt??? = 'JMBe';
  2738. Lnch (Network Time cp [2.0] by Pete Resnick)
  2739.      (First Launch Gestalt INIT code resource, by Pete Resnick)
  2740.      gestaltFirstLaunchAttr
  2741.      Returns info on whether the _Launch trap has been called by the
  2742.      System.
  2743.  
  2744.      const
  2745.      gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
  2746.      gestaltFirstLaunchDone = 0;      {_Launch called, INIT time over}
  2747.  
  2748.      NOTE:
  2749.      Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
  2750.      _Launch trap has been called since startup of the machine. All other
  2751.      bits are reserved and currently 0. Even if not installed at INIT time,
  2752.      Network Time will install the Gestalt selector if it is not already
  2753.      there when the control panel is opened and automatically set
  2754.      bit 0 to 1.
  2755.      68000 assembler source code is available for the INIT that installs
  2756.      the selector, and INIT resource -4048 from Network Time may be
  2757.      stolen (and renumbered as desired) and used in any INIT file as
  2758.      desired. (Pete Resnick)
  2759. NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
  2760.      gestaltNovellIPXVersion
  2761.      Returns the version of MacIPX as NumVersion.
  2762.  
  2763.      const
  2764.      gestaltNovellIPXVersion = 'NIPX'; {MacIPX version}
  2765.  
  2766.      NOTE:
  2767.      If the selector returns an error (i.e. no such selector?) then MacIPX
  2768.      is not installed. If the selector returns 0 then MacIPX is installed
  2769.      but the driver is not open. Any other value is the version.
  2770.      (Duane Murphy)
  2771. NMBT (Attention cp [0.6] by Marco Piovanelli)
  2772.      gestaltAttentionAddr
  2773.      The response value returned is a pointer to a read-only parameter
  2774.      block in the system heap.
  2775.  
  2776.      const
  2777.      gestaltAttentionAddr = 'NMBT'; {Attention address}
  2778.  
  2779.      NOTE: See for more detailed information the included ReadMe file.
  2780. NTim (Network Time cp [2.0] by Pete Resnick)
  2781.      ???
  2782.      Returns information private to Network Time.
  2783. PNfs (FileSaver [3.0], part of Norton Utilities for Macintosh)
  2784.      Returns a private structure used by various portions of the
  2785.      Norton Utilities.
  2786. PPP  (PPP mdev [???], part of MacPPP by Merit Network, Inc. and the
  2787.       University of Michigan)
  2788.      gestalt???
  2789.      Returns the address of the Lap globals as documented in the header
  2790.      file 'ppp.h.source'. It's an absolutely enormous struct that contains
  2791.      among other things function pointers to let you open and close MacPPP.
  2792.      (Richard Buckle)
  2793.  
  2794.      const
  2795.      gestalt??? = 'PPP ';
  2796.  
  2797.      NOTE:
  2798.      Source code of MacPPP is available at: ftp://merit.edu/pub/ppp/mac/
  2799. PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
  2800.      gestaltPwrSwitcherTable
  2801.      Returns a pointer to a private data structure (undocumented).
  2802.  
  2803.      const
  2804.      gestaltPwrSwitcherTable = 'PWRS'; {Power Switcher address}
  2805. SAVC (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2806.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2807.      (CDU cp [1.0?] by Connectix Corp.)
  2808.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2809.      (ScreenDaemon ??? [1.0] by Mason L. Bliss)
  2810.      gestaltScreenSaverControl *M05
  2811.      Returns a pointer to a procedure of type
  2812.  
  2813.      typedef pascal OSErr (*SaverControlProcPtr) (SaverCommand command);
  2814.  
  2815.      which allows controlling the screen saver.
  2816.  
  2817.      const
  2818.      gestaltScreenSaverControl = 'SAVC';
  2819.  
  2820.      NOTE:
  2821.      See for more information the AfterDark Gestalt header file. It
  2822.      is available by sending an email to
  2823.      gestalt-selectors-list-request@bio.vu.nl using the command
  2824.      'archive get src/AfterDarkGestalt.h'
  2825.      Or by emailing to Berkeley Systems Mac Tech Support at
  2826.      brklysystm@aol.com and ask them for the AfterDarkGestalt.h file.
  2827. SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  2828.      (Arashi app [???] by Juri Munkki)
  2829.      (Basic Black cp [1.3.3] by Mason L. Bliss)
  2830.      (CDU cp [1.0?] by Connectix Corp.)
  2831.      (Coffee Break app [1.0] by Thomas Reed)
  2832.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  2833.      (ScreenDaemon ??? [1.0] by Mason L. Bliss)
  2834.      gestaltScreenSaverAttr *M05
  2835.      Returns information about the current screen saver. Defined if a
  2836.      screen saver is installed.
  2837.  
  2838.      const
  2839.      gestaltScreenSaverAttr    = 'SAVR'; {Screen saver attributes}
  2840.      gestaltSaverTurnedOn      = 0;      {saver enabled/disabled}
  2841.      gestaltSaverAsleep        = 1;      {saver currently asleep}
  2842.      gestaltSaverDemoMode      = 2;      {saver sleeping in demo mode}
  2843.      gestaltSaverPasswordMode  = 3;      {saver sleeping in password-}
  2844.                                          { protected mode}
  2845.      gestaltAppDrawingDisabled = 4;      {QD drawing disallowed between}
  2846.                                          { module animation frames}
  2847.  
  2848.      NOTE:
  2849.      See for more information the AfterDark Gestalt header file. It
  2850.      is available by sending an email to
  2851.      gestalt-selectors-list-request@bio.vu.nl using the command
  2852.      'archive get src/AfterDarkGestalt.h'
  2853.      Or by emailing to Berkeley Systems Mac Tech Support at
  2854.      brklysystm@aol.com and ask them for the AfterDarkGestalt.h file.
  2855.  
  2856.      Thomas Reed wrote some source code (C) demonstrating how to install
  2857.      this selector. You can get a copy by sending an email to
  2858.      gestalt-selectors-list-request@bio.vu.nl using the command
  2859.      'archive get src/gestalt-savr.txt'
  2860. SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
  2861.      kSDDelayCreator
  2862.      Returns a pointer to a data structure described in the documentation
  2863.      included with Shutdown Delay.
  2864.  
  2865.      const
  2866.      kSDDelayCreator = 'SDdD';
  2867.  
  2868.      NOTE: The d is actually the option-shift v character ($D7).
  2869. sDmn (ScreenDaemon ext [1.0] by Mason L. Bliss)
  2870.      gestaltScreenDaemonAddr
  2871.      Returns the address of ScreenDaemon's patch globals.
  2872.  
  2873.      const
  2874.      gestaltScreenDaemonAddr = 'sDmn'; {ScreenDaemon address}
  2875. SHCM (Shared Code Manager ext [1.0] by Eric Schlegel of Microsoft Corp.)
  2876.      gestalt???
  2877.      Returns a pointer to an undocumented entrypoint into the Shared Code
  2878.      Manager.
  2879.  
  2880.      const
  2881.      gestalt??? = 'SHCM';
  2882.  
  2883.      NOTE:
  2884.      The Shared Code Manager (1991) is a simple DLL mechanism that is
  2885.      currently used by Microsoft's Mac OLE 1.0 (Object Linking & Embedding)
  2886.      and the applications that use OLE 1.0. (Eric Schlegel)
  2887. SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
  2888.      gestaltStuffItSpaceSaverAddr
  2889.      Returns the address of the SpaceSaver "command module" which allows
  2890.      developers to access all the functions of SpaceSaver.
  2891.      (Leonard Rosenthol)
  2892.  
  2893.      const
  2894.      gestaltStuffItSpaceSaverAddr = 'SLip';
  2895. SPAL (SpeakAlert ext [1.0] by Brian Stern)
  2896.      gestaltSpeakAlert
  2897.      Details are private to SpeakAlert.
  2898.  
  2899.      const
  2900.      gestaltSpeakAlert = 'SPAL';
  2901. SWVE (SimpleWave ext [1.0b1] by Rene G.A. Ros)
  2902.      gestaltSimpleWaveTable
  2903.      Returns a pointer to an INITGestalt structure.
  2904.  
  2905.      const
  2906.      gestaltSimpleWaveTable = 'SWVE';
  2907. TExT (FileTyper Menu cp [none], part of FileTyper by Daniel Azuma)
  2908.      gestaltTyperMenuAttr
  2909.      Returns information about the FileTyper Menu's operation.
  2910.  
  2911.      const
  2912.      gestaltTyperMenuAttr = 'TExT';
  2913.      gestalt???           = 0;      {TRUE = NO item added to Finder's}
  2914.                                     { File menu}
  2915.  
  2916.      WARNING:
  2917.      No currently released version of FileTyper Menu (up to and including
  2918.      4.1.1) installs this selector, but future versions may. Check for the
  2919.      existence of this selector first, if you use it. (Daniel Azuma)
  2920. TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
  2921.      ???
  2922.      The value returned is a pointer to a Monitor information block. *M04
  2923.      (Scott Bronson)
  2924. Typ4 (FileTyper Menu cp [4.1.1], part of FileTyper by Daniel Azuma)
  2925.      gestaltTyperMenuPriv
  2926.      Returns private information, the existence of this selector indicates
  2927.      FileTyper Menu is installed.
  2928.  
  2929.      const
  2930.      gestaltTyperMenuPriv = 'Typ4';
  2931.  
  2932.      NOTE:
  2933.      Third parties can determine if FileTyper Menu is installed by
  2934.      checking for the existence of this selector. However, the actual value
  2935.      returned is private and subject to change. (Daniel Azuma)
  2936. UMAM (Authentication Manager cp [1.0.7] by Robert John Churchill of the
  2937.                                            University of Michigan)
  2938.      gestaltAuthManVersion
  2939.      Returns the version of the Authentication Manager as Double BCD.
  2940.  
  2941.      const
  2942.      gestaltAuthManVersion = 'UMAM';
  2943. YeHa (SpeedyFinder7 cp [1.5.4?] by Victor Tan)
  2944.      ???
  2945.      Returns a pointer to a private data structure (undocumented).
  2946.  
  2947.      NOTE:
  2948.      The structure to which the Gestalt selector refers changes almost
  2949.      invariably from version to version of SF7. Should someone work out
  2950.      parts of the structure of the selector keep in mind that it will
  2951.      almost certainly change in the next minor release and definitely with
  2952.      the next major release. (Victor Tan)
  2953.  
  2954. Unknown Gestalt Selector Codes
  2955. ==============================
  2956. The following sections list selector codes of which the meaning is unknown.
  2957.  
  2958. Apple Software
  2959. --------------
  2960. OSType(7)
  2961.      (System [6.0.4])
  2962.      Returns LongInt('carl') and a result code of noErr.
  2963. OSType(13)
  2964.      (System [6.0.4])
  2965.      Returns LongInt('bbmc') and a result code of noErr.
  2966. 3615 (Express Modem cp [1.0], part of Express Modem Software)
  2967. a pc (PC Setup? cp [1.0?], part of Quadra 610-DOS software)
  2968. admn (AppleShare Admin appl [3.0])
  2969.      gestaltASAdminAttr?
  2970.  
  2971.      const
  2972.      gestaltASAdminAttr?    = 'admn';
  2973.      gestaltASAdminPresent? = 0;
  2974. AgVU (Agent VU ext [2.0?], part of Virtual User)
  2975. afps (AppleShare ext [3.5?], part of System 7.5)
  2976.      Bits 0 and 16 set.
  2977. aint (System? [7.1.1?])
  2978.      NOTE: Returns 2 on a C660AV and Q840AV.
  2979. apml (PowerTalk Manager ext [1.0?], part of PowerTalk)
  2980.      Bit 0 and 31 set.
  2981. asps (AppleShare Print Server appl [3.0])
  2982.      gestaltASPrintServerAttr?
  2983.  
  2984.      const
  2985.      gestaltASPrintServerAttr?    = 'asps';
  2986.      gestaltASPrintServerPresent? = 0;
  2987. AtEa (At Ease Startup [2.0?], part of At Ease for Workgroups)
  2988. bART (MacCheck app [1.0])
  2989. BaRT (MacCheck app [1.0])
  2990. bast (Performa cp [1.1], part of System 7.1P)
  2991. batt (Powerbook Duo Enabler [1.0])
  2992.      (System [7.5])
  2993.      (System Enabler 111 [1.0])
  2994.      (System Enabler 121 [1.0])
  2995.      (System Enabler 131 [1.0])
  2996.      (System Enabler 201 [1.0]))
  2997.      Returns information about the PowerBook battery?
  2998.  
  2999.      The debugger name for the routine which returns the response for this
  3000.      selector is called 'GETTIMELEFT'. But in what units? And what time?
  3001.      I've only seen the value 0, 5 or 6 returned. The GDEF calls the Power
  3002.      Manager (_PMgrOp [$A085 with D0=$00]) to get the info but I can't find
  3003.      which function. (Rene Ros)
  3004. brcn (Screen? cp [1.0?] on Color Classic)
  3005. brcN (Energy Saver cp [1.0?], part of Monitor Energy Saver)
  3006. bugx (System [7.5])
  3007.      (System Update ext [3.0])
  3008.  
  3009.      NOTE:
  3010.      The System Update reserves the 'bugx', 'bugy' and 'bugz' gestalt
  3011.      selectors to indicate which fixes are installed on a given machine.
  3012.      These are for Apple internal use only, and developers should not rely
  3013.      on these. There is no guarantee that they will be supported in future
  3014.      versions of Macintosh system software. *AT06
  3015. bugy (32-bit System Enabler [1.0])
  3016.      (Hardware System Update ext [1.0])
  3017.      (Network Launch Fix ext [1.0])
  3018.      (Sound Manager ext [3.0])
  3019.      (System? [7.1?])
  3020.      (System enabler 065)
  3021.      gestaltEnablerAttr?
  3022.  
  3023.      const
  3024.      gestaltEnablerAttr?                  =  'bugy'; ?
  3025.      gestaltEnablerEgretDispatchPatch?    =  0; {these correct the system}?
  3026.      gestaltEnablerEgretTimePatch?        =  1; { clock and modem perf.}?
  3027.      gestalt???                           =  2; {unknown, Hardware Upd.}
  3028.      gestaltEnablerEgretTickHandlerPatch? =  3; { see bit 0 & 1}?
  3029.      gestalt???                           =  4; {unknown, Hardware Upd.}
  3030.      gestaltEnablerSCSIPatch?             =  5; {floppy drive fixed}?
  3031.      gestalt???                           =  6; {unknown, Hardware Upd.}
  3032.      gestaltEnabler32bit?                 =  7; {32-bit enabler present}?
  3033.      gestalt???                           =  9; {unknown, Sound Mgr 3.0}
  3034.      gestalt???                           = 11; {unknown, Hardware Upd.}
  3035.      gestalt???                           = 12; {unknown, Hardware Upd.}
  3036.      gestalt???                           = 13; {unknown, Hardware Upd.}
  3037.      gestalt???                           = 14; {unknown, Hardware Upd.}
  3038.      gestalt???                           = 15; {unknown, Hardware Upd.}
  3039.      gestalt???                           = 16; {unknown, Hardware Upd.}
  3040.      gestaltEnablerKeyboardPatch?         = 17; {corrects Adjustable Kbd}
  3041.                                                 { gestaltKeyboardType}
  3042.                                                 { response?}
  3043.      gestalt???                           = 18; {unknown, Hardware Upd.}
  3044.      gestalt???                           = 19; {unknown, ???}
  3045.      gestalt???                           = 24; {unknown, ???}
  3046.      gestalt???                           = 25; {unknown, ???}
  3047.      gestalt???                           = 26; {unknown, ???}
  3048.      gestaltNetworkLaunchFix?             = 27; {fix problem with appl. on}
  3049.                                                 { server launch with 68040}
  3050.      gestalt???                           = 28; {unknown, ???}
  3051.      gestalt???                           = 31; {unknown, ???}
  3052.  
  3053.      WARNING:
  3054.      These are ALL guesses. Well not entirely, I used the ResEdit CODE
  3055.      Editor to peek into the 32-bit System Enabler, Hardware System update
  3056.      and other software. Please check if I'am right. You should be able to
  3057.      find some of the answers in the INIT resource of the Hardware Update
  3058.      and the names of the PTCH resources in version 1.0 were also useful...
  3059.      The System Enablers (for new Macintosh models) don't seem to install
  3060.      or change any Gestalt selector to indicate their presence.
  3061.  
  3062.      NOTE:
  3063.      The System Update reserves the 'bugx', 'bugy' and 'bugz' gestalt
  3064.      selectors to indicate which fixes are installed on a given machine.
  3065.      These are for Apple internal use only, and developers should not rely
  3066.      on these. There is no guarantee that they will be supported in future
  3067.      versions of Macintosh system software. *AT06
  3068. bugz (System [7.0]/Tune-up ext)
  3069.  
  3070.      NOTE:
  3071.      The System Update reserves the 'bugx', 'bugy' and 'bugz' gestalt
  3072.      selectors to indicate which fixes are installed on a given machine.
  3073.      These are for Apple internal use only, and developers should not rely
  3074.      on these. There is no guarantee that they will be supported in future
  3075.      versions of Macintosh system software. *AT06
  3076. cate (Catalogs Extension? ext [???], part of PowerTalk)
  3077.      Bit 0 set.
  3078. CDJR (Apple Menu Options cp [1.0], part of System 7.5)
  3079.      (ExtendedAppleMenu [???] by Chris Derossi)
  3080. cfmg (System [7.1.2 on PowerMac])
  3081.      (CFM68K ext [1.0a1], part of OpenDoc)
  3082. cith (System? [???])
  3083.      Seen under MAE 1.0.
  3084. clbv (PowerTalk ext [1.0?], part of PowerTalk)
  3085.      Bit 0 set.
  3086. comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
  3087.  
  3088.      NOTES:
  3089.      The name "QuickDraw Font Plus" is translated from Japanese and may be
  3090.      translated differently by Apple Computer, Inc.
  3091.  
  3092.      I think 'comp' stands for 'composite', as the INIT contains patches to
  3093.      the Font Manager needed to handle 'composite font suitcases'.
  3094.      (Marco Piovanelli)
  3095. ctxm (???)
  3096. cuda (System? [7.1.2?], on Performa 630TV)
  3097.      gestaltCudaDispatchMgrAttr?
  3098.      Returns information about the Cuda Dispatch Manager?
  3099.  
  3100.      gestaltCudaDispatchMgrAttr? = 'cuda';
  3101.  
  3102.      Value found: $0002 0028
  3103. CYP8 (MegaPhone Menu ext [1.0] by Cypress Research Corp.,
  3104.                                part of Apple Telecom)
  3105. ddsk (DropDisk app [1.0b3], formerly Mount'em app by Mike Wise and
  3106.                             Chris Cotton of Apple Computer)
  3107.      Only installed if DropDisk driver is loaded. Looks like the highword
  3108.      contains the version (of driver or application?) as BCD, while the
  3109.      low-word is a mystery.
  3110.      
  3111.      NOTE:
  3112.      See also the 'mtem' selector installed by Mount'em 1.0b1 and 1.0b2.
  3113. detc (???)
  3114. diag (Automated Diagnostics ext [1.0], part of Apple Personal
  3115.                                        Diagnostics 1.0)
  3116. doub (WorldScript II ext [7.2?], part of KanjiTalk7 and
  3117.                                  several language kits)
  3118.      gestaltDoubleByteScriptVersion?
  3119.      Returns the version of WorldScript II as BCD?
  3120.  
  3121.      const
  3122.      gestaltDoubleByteScriptVersion? = 'doub';
  3123.  
  3124.      NOTE:
  3125.      This selector seems to be installed by WorldScript II (the
  3126.      System 7.1 ext needed to handle double-byte scripts like Japanese,
  3127.      Korean and Traditional Chinese). Known returned value is $0x0710.
  3128.      (Marco Piovanelli)
  3129. dude (Powerbook Duo Enabler [1.0])
  3130.      (System [7.5])
  3131.      (System Enabler 111 [1.0])
  3132.      (System Enabler 121 [1.0])
  3133.      (System Enabler 131 [1.0])
  3134.      (System Enabler 201 [1.0]))
  3135. dudi (Powerbook Duo Enabler [1.0])
  3136.      (System [7.5])
  3137.      (System Enabler 111 [1.0])
  3138.      (System Enabler 121 [1.0])
  3139.      (System Enabler 131 [1.0])
  3140.      (System Enabler 201 [1.0]))
  3141. EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
  3142.      Not installed by version 3.0 which is part of System 7.5?
  3143. fdbk (Speech Setup cp? [???], part of PlainTalk)
  3144. fdrs (Finder [7.1.1?])
  3145.      Installed by Finder extension?
  3146. fnda (Finder [7.1.1])
  3147.      NOTE: The a is actually the option-a character ($8C).
  3148. fnd& (Finder?, System? [7.1.2 on PowerMac?])
  3149.      NOTE: The & is actually the option-shift-a character ($E5).
  3150. fnd* (Finder [7.1.1])
  3151.      NOTE: The * is actually the shift-6 character ($F6).
  3152. fnd? (Finder [7.1.1?])
  3153.      Installed by Finder extension?
  3154. fnd  (Finder [7.1.1?])
  3155.      Installed by Finder extension?
  3156. fndc (Finder [7.1.1])
  3157. fndf (Find File Extension ext [1.1.1], part of System 7.5 Update 1.0)
  3158.      Returns the type of software extending the find capabilities of the
  3159.      Finder? If the selector isn't installed the find capbilities are
  3160.      not extended or a older version of Find File is installed?
  3161.      The response is 'fndf' if Find File is installed. (Rene Ros)
  3162. fndn (Finder?, System? [7.1.2 on PowerMac?])
  3163.      NOTE: The n is actually an option-n, n ($96).
  3164. FNDR (Finder [7.1.1?])
  3165.      Installed by Finder extension?
  3166. fndx (AliasDragger ext [1.0b1] by Leonard Rosenthol)
  3167.      gestaltFinderFeaturesAttr?
  3168.      By installing this selector some undocumented features of the Finder
  3169.      (starting with System 7.1 Pro) are enabled.
  3170.  
  3171.      const
  3172.      gestaltFinderFeaturesAttr? = 'fndx';
  3173.      gestaltFinderControlDrag?  = 0;      {if set, control dragging an}
  3174.                                           { creates an alias}
  3175.  
  3176.      NOTE: The x is actually an option-x ($C5).
  3177. Frs1 (??? [???]. part of Apple Telecom?)
  3178. FrsH (??? [???]. part of Apple Telecom?)
  3179. futr (ThreadsINIT ext [2.0?], part of Threads Package)
  3180. gFax (Fax Extension ext [1.1?], part of Express Modem Software)
  3181. gntz (System [7.1.2 on PowerMac])
  3182. gpad (General Controls cp [7.5])
  3183.      gestaltGeneralControlsAddr?
  3184.      Returns the address to ???
  3185.  
  3186.      const
  3187.      gestaltGeneralControlsAddr? = 'gpad';
  3188. gprf (General Controls cp [7.5])
  3189.      gestaltGeneralControlsAttr?
  3190.      Returns information about the settings made in the General Controls
  3191.      control panel.
  3192.  
  3193.      const
  3194.      gestaltGeneralControlsAttr? = 'gprf';
  3195.      gestaltControlGoDocuments?  = 0;      {go to Documents folder}
  3196.      gestaltControlGoLast?       = 1;      {go to last used folder}
  3197.      gestaltControlProtectSystem?= 2;      {Protect System folder}
  3198.      gestaltControlHideDesktop?  = 3;      {Hide desktop}
  3199.      gestaltControlLauncher?     = 4;      {Display Launcher on startup}
  3200.      gestaltControlWarnShutdown? = 5;      {Warn on incorrect shutdown}
  3201. HAM  (Apple Menu Options cp [1.0], part of System 7.5)
  3202.      (HAM ??? [???] by Inline Design)
  3203. harp (PowerBook cp? [7.2?])
  3204. hcsl (Finder [7.1.1?])
  3205. heap (System [7.1.2 on PowerMac])
  3206.      Bits 1 and 5 set.
  3207. hgfd (AppleShare File Server appl [3.0])
  3208.      gestaltASFileServerAttr?
  3209.  
  3210.      const
  3211.      gestaltASFileServerAttr?    = 'hgfd';
  3212.      gestaltASFileServerPresent? = 0;
  3213. HrIt (HearIt cp [1.0])
  3214. iadj (System? [7.1.2?] with PowerTalk?)
  3215.      (Display Enabler ext, Icon relocation INIT ID#3 [1.0])
  3216. idsp (System? [7.1?] on Macs with sound input?)
  3217.      Values found: $FFFF FFFF, $0x000C, $0x0000
  3218. iic  (???, on Performa 630TV)
  3219.      Value found: 3.
  3220. immg (??? [???] on PowerBook 520/540? and Performa 630TV)
  3221.      Value found: $0100 0000. Version?
  3222. intD (??? [???])
  3223.  
  3224.      NOTE:
  3225.      This is a mystery selector.  It isn't installed by any software, as
  3226.      far as I know, but the Finder 7.1 checks for this selector in certain
  3227.      situations. (Marco Piovanelli)
  3228. jkbd (??? (Japanese!) ext [1.0], part of KanjiTalk)
  3229. lang (WorldScript II ? ext [7.2?], part of KanjiTalk7 and
  3230.                                    several language kits)
  3231.      gestalt???Attr
  3232.      Returns information about the Language Manager?
  3233.  
  3234.      const
  3235.      gestaltLanguageMgrAttr = 'lang';
  3236.      gestaltLanguageMgr???  = 0;
  3237. LASB (LaserWriter Bridge cp [2.0?], part of Network Software Installer 1.5)
  3238.      gestaltLaserWriterBridgeAddr?
  3239. ldap (???)
  3240. lngb (WorldScript II ? ext [7.2?], part of KanjiTalk7 and
  3241.                                    several language kits)
  3242.      Value found: $00001FFF.
  3243. lstk (Speech Setup cp? [???], part of PlainTalk)
  3244. ltma (Link Tool Manager ext [2.0?], part of Apple Remote Access 2.0)
  3245.      gestaltLinkToolVersion?
  3246.      Returns the version of the Link Tool Manager as NumVersion?
  3247.  
  3248.      const
  3249.      gestaltLinkToolVersion? = 'ltma';
  3250.  
  3251.      NOTE:
  3252.      The only value I've seen returned was $02002008, which would mean
  3253.      '2.0d8' which was not correct since the 'vers' recource said '2.0f0'.
  3254.      The value is hardcoded in the .LTM Driver resource. (Rene Ros)
  3255. mash (System [7.1P?]/At Ease [1.0?])
  3256.  
  3257.      NOTE:
  3258.      The Starter cp (part of System 7.1P) and Launcher cp (part of
  3259.      System 7.5) both contain a 'mash' resource and includes a template for
  3260.      it. Can this be the same data-structure? (Rene Ros)
  3261. mbox (Mailbox Extension? ext [???], part of PowerTalk?)
  3262.      gestaltMailboxVersion?
  3263.      Returns version of Mailbox software as INTEGER.
  3264.      
  3265.      const
  3266.      gestaltMailboxVersion? = 'mbox';
  3267. MClk (Date & Time cp [7.5], part of System 7.5)
  3268.      (SuperClock! cp [4.0] by Steve Christensen)
  3269. mfdr (At Ease [1.0])
  3270. mjik (MenuMagic ext [1.0], part of System 7.1 Pro and 7.5)
  3271. mtem (Mount'em app [1.0b1-1.0b2] by Mike Wise and Chris Cotton of
  3272.                                     Apple Computer)
  3273.      See the 'ddsk' selector installed by DropDisk 1.0b3 and later.
  3274. mtv! (TV Setup cp [1.0], part of System for Macintosh TV?)
  3275.  
  3276.      NOTE:
  3277.      Not seen installed, disassembled control panel, meaning unknown.
  3278.      It's probably an address. (Rene Ros)
  3279. Norm (68K DebugServicesINIT ext [2.0?])
  3280.      Pointer to callback function?
  3281. NubA (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3282. NubD (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3283. NubH (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3284. NubV (Debugger INIT ext [1.0] distributed with MetroWerks CodeWarrior)
  3285. octb (System? [7.5?] on PowerBook 520/540?)
  3286. ot   (??? [???])
  3287.      gestaltOpenTransportAttr?
  3288.      Returns information about the Open Transport software?
  3289.  
  3290.      const
  3291.      gestaltOpenTransportAttr?    = 'ot  ';
  3292.      gestaltOpenTransportPresent? = 0;
  3293.  
  3294.      NOTE:
  3295.      Defined with early test-versions of Open Transport? Never seen
  3296.      installed. See the 'otan' selector.
  3297. otan (??? [???])
  3298.      gestaltOpenTransportAttr? *AS18
  3299.      Returns information about the Open Transport software? If the
  3300.      function returns noerr and the response is non-zero, then
  3301.      Open Transport is present.
  3302.  
  3303.      const
  3304.      gestaltOpenTransportAttr?    = 'otan';
  3305.      gestaltOpenTransportPresent? = 0;
  3306.  
  3307.      NOTE:
  3308.      Contrary to the 'ot  ' selector this one is really installed by
  3309.      Open Transport.
  3310. PhoN (PowerBook Setup cp [7.3.1?], PhoneINIT INIT resource)
  3311. port (Powerbook Duo Enabler [1.0])
  3312.      (System [7.5])
  3313.      (System Enabler 111 [1.0])
  3314.      (System Enabler 121 [1.0])
  3315.      (System Enabler 131 [1.0])
  3316.      (System Enabler 201 [1.0])
  3317.      gestaltPortAttr?
  3318.      Returns information about the ports?
  3319.  
  3320.      const
  3321.      gestaltPortAttr?           = 'port';
  3322.      gestaltHasInternalModem?   = 0?;
  3323.      gestaltHasExternalPrinter? = 1?;
  3324.      gestaltHasExternalModem?   = 2?;
  3325.  
  3326.      NOTE:
  3327.      System Enabler 201 and PowerBook Duo enabler contain an GDEF resource
  3328.      which indicates bits 0, 1 and 2 can be set. (Rene Ros)
  3329. ppad (Performa cp [1.1], part of System 7.1P)
  3330. ppcv (System? [???])
  3331.      gestaltPPCVersionAttr *AS16
  3332.      Returns the version of the PPC Toolbox? Or attribute bits?
  3333.  
  3334.      const
  3335.      gestaltPPCVersionAttr = 'ppcv';
  3336. pprf (Performa cp [1.1], part of System 7.1P)
  3337. ptlk (Speech Setup cp? [???], part of PlainTalk)
  3338. pxtn (QuickDraw GX? ext? [???])
  3339.      Returns the version of the ??? as NumVersion.
  3340. Remt (AutoRemounter cp [???])
  3341. scrf (System? [7.5?])
  3342. serh (System? [7.1.2?])
  3343.      gestaltSerialHardware?
  3344.      Returns type of hardware used for serial I/O?
  3345.  
  3346.      const
  3347.      gestaltSerialHardware? = 'serh'; {Serial Hardware}
  3348.      gestaltClassicSer?     = 'Clas'; {returned on PPC 8100/80 (GeoPort?)}
  3349. shal (System [7.1?])
  3350.  
  3351.      NOTE: Returns 2 on PowerMac and 1 on Centris 660AV
  3352. slnk (MNPLinkTool? [1.0], part of Apple Remote Access)
  3353. sndx (Sound Manager ext [3.0]?)
  3354.      gestaltSoundMgrAttr?
  3355.  
  3356.      const
  3357.      gestaltSoundMgrAttr?    = 'sndx'?;
  3358.      gestaltSoundMgrPresent? = 0?
  3359. SnLv (??? [???])
  3360.      kGestaltLevelMeter
  3361.      Defined in the SoundLevel.c source file, distributed with the
  3362.      SoundLevel sample code.
  3363.  
  3364.      kGestaltLevelMeter = 'SnLv';
  3365. thng (ThreadsINIT ext [2.0?], part of Threads Package)
  3366. thrd (ThreadsINIT ext [2.0?], part of Threads Package)
  3367. udsk (System [7.1.2 on PowerMac])
  3368. udsv (System [7.1.2 on PowerMac])
  3369. vdrc (PC Exchange? cp [1.0?])
  3370. vmbs (System [7.0])
  3371.      gestaltVMBackingStoreRef?
  3372.      Returns the file reference number of the Virtual Memory storage file
  3373.      if VM is present.
  3374.  
  3375.      const
  3376.      gestaltVMBackingStoreRef? = 'vmbs';
  3377. vmcl (System, VM on [7.0])
  3378. vmem (RAM Doubler [1.0] by Connectix Corporation)
  3379.      gestaltVMExtensionMgr?
  3380.      Returns type of software used to extend the Virtual Memory Mgr?
  3381.  
  3382.      const
  3383.      gestaltVMExtensionMgr? = 'vmem';
  3384.      gestaltRAMDoubler?     = 'RaM2';
  3385.  
  3386.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  3387.  
  3388. Third Parties Software
  3389. ----------------------
  3390. *DC* (DepthCharge cp [???] by Maf Vosburgh)
  3391. AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
  3392. AcPC (AccessPC cp [3.0?] by Insignia Solutions)
  3393.      Version 3.0 always returns $8765 4321.
  3394. ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3395. ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3396.  
  3397.      NOTE:
  3398.      Not installed by AfterDark but the GDEF indicates it is able to return
  3399.      a response.
  3400. ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3401.  
  3402.      NOTE:
  3403.      Not installed by AfterDark but the GDEF indicates it is able to return
  3404.      a response.
  3405. ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
  3406. ADTK (Talk*Control cp [???] by 2Way Computing, Inc.)
  3407. AP00..AP06
  3408.      (RapidLock cp, RapidTrak cp or drivers? [1.1], part of RapidTrak
  3409.       software by Insignia Solutions Inc.)
  3410.      It seems these selectors are installed for each harddisk connected to
  3411.      your Macintosh. The last two bytes of the selector is the SCSI ID.
  3412. AP17 (AccessPC cp [2.0?] by Insignia Solutions)
  3413. ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
  3414. ASTN (Asante EN/SC ext [???] by Asante Technologies, Inc.)
  3415. aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
  3416. AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
  3417. A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
  3418. Bars (Virtual Desktop Extension ext [1.8?], part of Virtual Desktop
  3419.                                             by AWOL Software, Ross Brown)
  3420. Blad (Blood cp [1.0.1?] by Alessandro Levi Montalcini)
  3421.      NOTES:
  3422.      The B is actually the option-s character ($A7).
  3423.      The d is actually the option-d character ($B6).
  3424. bMRN (Super Boomerang cp [4.0?], part of Now Utilities by Now Software)
  3425. cc20 (???)
  3426.  
  3427.      NOTE: The 'cc' are actually option-c ($8D).
  3428. CDmn (CDMenu cp [1.0?] by Henrik Eliasson)
  3429. CDUf (CDU cp [1.0?] by Connectix Corp.)
  3430. CDUt (CDU cp [1.0?] by Connectix Corp.)
  3431. CHSR (ChooserUser [1.2?] by Maurice Volaski)
  3432. CiCN (Color ICON Mania cp [1.0] by Yosuke Suzuki)
  3433. cLib (???)
  3434. CPPf (Power To Go cp [2.0?] by AlSoft, Inc.)
  3435. Cut! (Desktop Shortcut cp [1.0], part of Aladdin Desktop Tools
  3436.                                  by Aladdin Systems
  3437. DanS (PowerClick cp [1.0] by Daniel A. Segel)
  3438. Day* (PowerCentral cp [1.3?] by DayStar Digital, Inc.)
  3439.      Returns $FFFF FFFF when no card is installed?
  3440.  
  3441.      NOTE: The * is actually the option-8 character ($A5).
  3442. Dbug (???)
  3443. DCDt (NoDesktopCleanup cp [1.0?] by Alessandro Levi Montalcini)
  3444. DCKc (Keys! cp [1.0] by Stefan Kurth)
  3445.  
  3446.      NOTE: The lowercase c is actually the control-q (Command key sign)
  3447.      character ($11).
  3448. DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
  3449. DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
  3450. DFlh (DiskFlash cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  3451. DlgV (Dialog View cp [2.11], formerly List Font cp by James W. Walker)
  3452.      See also 'LFnt'.
  3453. Dpth (DepthMaster cp [1.0] by Victor Tan)
  3454. DBPR (DATEBOOK PRO Extension ext [2.0.1?] by Aldus Corporation, now Adobe)
  3455.      Returns data about the current reminder? GDEF is called with 'SvA4'
  3456.      selector to initialize data inside the GDEF. (Rene Ros)
  3457. DWG! (Volume Menu cp [1.0] by David Gladstone, Chris Burns, Julian Harris)
  3458. EDCN (PPPReport cp [1.0b3?] by Eric de la Musse)
  3459. ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
  3460. ESOC (Serial of Champions ext [???] by Mike Throckmorton)
  3461. Extn (Now Startup Manager cp [4.0?], part of Now Utilities by Now Software)
  3462. ffEx (???)
  3463. Fie  (Icon7 ext [???] by Inline Designs)
  3464.      gestaltIcon7?
  3465. fPth (FinderPaths cp? [???])
  3466.  
  3467.      NOTE: The f is actually the option-f character ($C4).
  3468. fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
  3469.       package)
  3470. FMnu (Now FolderMenus cp [5.0.1], part of Now Utilities by Now Software)
  3471. FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
  3472. FUWi (OutTheWindow! ext [1.0] by Olivier Lebra)
  3473. FW14 (FileWave Administrator ext [2.0?], part of FileWave 2.0
  3474.       by Wave Research)
  3475. FWCP (File Tracker Controls cp [1.0] by Mark Aiken)
  3476. fWmM (Super Boomerang cp [4.0?], part of Now Utilities by Now Software)
  3477. GrEG (Greg's Buttons ext [3.1.4?] by Greg Landweber)
  3478. GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  3479. gV00 (PowerPort cp? [???])
  3480. gV01 (PowerPort cp? [???])
  3481. gV02 (PowerPort cp? [???])
  3482. gV03 (PowerPort cp? [???])
  3483. gV04 (PowerPort cp? [???])
  3484. gV05 (PowerPort cp? [???])
  3485. gV06 (PowerPort cp? [???])
  3486. gV07 (PowerPort cp? [???])
  3487. gV08 (PowerPort cp? [???])
  3488. gV09 (PowerPort cp? [???])
  3489. gV0A (PowerPort cp? [???])
  3490. GVfd (???)
  3491. GVms (???)
  3492. GVso (Global Village Toolbox ext [2.1.4?] by Global Village Communication)
  3493. GVsp (Global Village Toolbox ext [2.1.4?] by Global Village Communication)
  3494. He20 (Helium cp [1.0?] by Robert L. Mathews)
  3495. HEID (Incognito cp [1.0?] by Manuel Veloso)
  3496. HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
  3497.      GDEF always returns value 1.
  3498. HtLk (Reference Link ext [1.0] by James W. Walker)
  3499. IACi (???)
  3500. iHnd (Invisible Hand cp [1.0] by Carl Mauer)
  3501.  
  3502.      NOTE:
  3503.      Because this cp patches the _Random trap you can use this selector to
  3504.      determine its presence and refuse to continue.
  3505. in++ (Inline++TSM cp [2.0?] by Hideaki Iimori)
  3506.      The response is an address to a private (??? -- some fields look like
  3507.      they may be public, but the docs are in Japanese) parameter block.
  3508.      (Marco Piovanelli)
  3509. Info (Desktop SpeedBoost cp [1.0], part of Aladdin Desktop Tools
  3510.                                    by Aladdin Systems)
  3511. Intj (Interjection ext [???])
  3512. JAiN (Rival cp by Inline Designs)
  3513.      gestaltRival
  3514.  
  3515.      NOTE: The i is actually the option-u/i character ($95).
  3516. jbxC (???)
  3517. jsm1 (???)
  3518. JXNM (NowMenus cp [4.0?], part of Now Utilities by Now Software)
  3519. KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
  3520. KBCM (???)
  3521. kPow (???)
  3522. KQae (KQ Apple Events ext [???], part of KeyQuencer
  3523.                                  by Alessandro Levi Montalcini)
  3524. KQue (KeyQuencer cp [???], part of KeyQuencer
  3525.                            by Alessandro Levi Montalcini)
  3526. LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
  3527.      See also 'DlgV'.
  3528. LNCH (Talk*Control cp [???] by 2Way Computing, Inc.)
  3529. LxRZ (Retro.SCSI? ext [2.0?], part of Retrospect by Dantz Development
  3530.       Corporation)
  3531.      (Remote? cp [2.0?], part of Retrospect by Dantz Development
  3532.       Corporation)
  3533. MAX` (PaperPort Extension ext [2.0?], part of Visioneer PaperPort
  3534.                                       by Visioneer, Inc.)
  3535.      Returns pointer to private data?
  3536. MAX~ (PaperPort Extension ext [2.0?], part of Visioneer PaperPort
  3537.                                       by Visioneer, Inc.)
  3538.      Returns information about the PaperPort software? Attribute bits?
  3539. Mgc! (Wizard INIT ext [1.0], part of Disk Wizard by Francois Pottier)
  3540. MJC& (AutoMenus II cp [???] by Michael Conrad)
  3541. MV10 (TearOFF cp [???] by Bad Boys' Software)
  3542. nOAg (??? cp [1.2?], part of netOctopus by Pole Position)
  3543. nOAv (??? cp [1.2?], part of netOctopus by Pole Position)
  3544.      Returns version as NumVersion?
  3545. NCex (Now QuickFiler Extension ext [5.0.1], part of Now Utilities
  3546.                                             by Now Software)
  3547. NGst (NokNok cp [1.0?])
  3548. NkNk (NokNok cp [1.0?])
  3549. NowT (Now Toolbox ext [4.0?], part of Now Utilities by Now Software)
  3550. NWin (Now Startup Manager cp [5.0.1], part of Now Utilities
  3551.                                       by Now Software)
  3552. Pax! (PaperPort cp [2.0?], part of Visioneer PaperPort by Visioneer, Inc.)
  3553. PAXC (PaperPort Extension ext [2.0?], part of Visioneer PaperPort
  3554.                                       by Visioneer, Inc.)
  3555.      Has something to do with compression?
  3556. PBUf (???)
  3557. PBUt (CDU cp [1.0?] by Connectix Corp.)
  3558. PopF (PopupFolder cp [???] by Inline Software)
  3559. PRT+ (PrintAid [0.9?] by James W. Walker)
  3560. PtrP (PrintPatrol [1.0] by Randy DeRuiter and John Champion)
  3561. QRef (QuickRef ext? [1.0] by Scott Bronson)
  3562. QCam (QuickCamVideo ext [1.0] by Connectix Corporation)
  3563.      (QuickCamMic ext [1.0] by Connectix Corporation)
  3564. QIC! (???)
  3565. Rem* (???)
  3566. ReSp (File Tracker Controls cp [1.0] by Mark Aiken)
  3567. RO40 (??? [???] by ???)
  3568.      DiskCopy 6.0 checks for this selector.
  3569.  
  3570.      NOTE: Selector is OSType( $5285 3430 ).
  3571. RQDC (DropCheck cp [???] by Ronald B. Queloz)
  3572. SCTR (FaxMonitor ext [1.6?], part of FAXcilitate by PSI)
  3573. SDIT (???)
  3574. sDmn (ScreenDaemon ??? [1.0] by Mason L. Bliss)
  3575.      gestaltScreenDeamonAddr?
  3576.      Returns the address of Basic Black's patch globals.
  3577.  
  3578.      const
  3579.      gestaltScreenDeamonAddr? = 'sDmn'; {ScreenDeamon address}
  3580.  
  3581.      NOTE:
  3582.      See documentation included with ScreenDeamon for more information.
  3583. SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
  3584.       ALSoft, Inc.)
  3585. SFun (SF Windows [1.0] by Damon Cokenias)
  3586. SFwd (Open-wide cp [3.0?] by James W. Walker)
  3587. SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
  3588. SNIT (Snitch ext [1.0] by Mitch Jones)
  3589. SPLO (SpigotVDIG ext [1.0] by SuperMac Technology)
  3590. ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
  3591. STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
  3592. TapT (TappyType cp [2.0?] by Colin Klipsch)
  3593. TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
  3594. Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
  3595. TSM+ (TSM Fix ext [1.0] by Matt Slot)
  3596. tsmH (TSMHelper ext [???]) by Donald Brown, CE Software)
  3597. UhOh (SpeedyFinder7 Extension ext [1.5.9h], part of SpeedyFinder7
  3598.                                             by Victor Tan)
  3599. UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by
  3600.       Keisuke Hara)
  3601.      See also FtCg selector.
  3602. View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
  3603.      gestaltViewerEngine
  3604.      The gestalt selector is not installed until someone (StuffIt) invokes
  3605.      the engine.
  3606. vmFn (RAM Doubler [1.0] by Connectix Corporation)
  3607.      Seems to return a memory address, perhaps to a function to control
  3608.      Virtual Memory?
  3609.  
  3610.      NOTE: See 'Reports' chapter (RAMDoubler section) for more information.
  3611. WARE (???)
  3612. WREO (Replace Existing Options cp [???] by Jonathon Summers)
  3613.  
  3614.      NOTE: The W is actually the option-w character ($B7).
  3615. Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
  3616.  
  3617.      NOTE: The W is actually the option-w character ($B7).
  3618. xMe0 (OptiMem cp [2.0?] by Jump Dev. Group Inc.)
  3619.  
  3620.      NOTE: The 0 is a zero ($30).
  3621. YaHu (Desktop SpeedBoost cp [1.0], part of Aladdin Desktop Tools
  3622.                                    by Aladdin Systems)
  3623. ygS  (???)
  3624.  
  3625.      NOTES:
  3626.      The y is actually option-u/y ($D8).
  3627.      The last byte is actually the BEL ASCII code ($07).
  3628. YoHo (Desktop SpeedBoost cp [1.0], part of Aladdin Desktop Tools)
  3629.                                    by Aladdin Systems)
  3630. YuHu (Desktop Makeover cp [1.0], part of Aladdin Desktop Tools)
  3631.                                  by Aladdin Systems)
  3632. *Men (OtherMenu ext [1.0] by James W. Walker)
  3633.  
  3634. Gestalt Manager Calls
  3635. =====================
  3636. All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
  3637. in this chapter.
  3638.  
  3639. Gestalt Manager Routines
  3640. ------------------------
  3641. The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
  3642. listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
  3643. documented.
  3644.  
  3645. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3646.      Available since System 6.0.4.
  3647.      Trap Macro
  3648.        _Gestalt ($A1AD)
  3649.      Registers on entry   D0: selector code
  3650.      Registers on exit    A0: response
  3651.                           D0: result code
  3652.      Result codes
  3653.        noErr                       0 No error
  3654.        gestaltUnknownErr       -5550 Could not obtain the response
  3655.        gestaltUndefSelectorErr -5551 Undefined selector
  3656.  
  3657. FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
  3658.      Available since System 6.0.4.
  3659.      Trap Macro
  3660.        _NewGestalt ($A3AD)
  3661.      Registers on entry   A0: address of new selector function
  3662.                           D0: selector code
  3663.      Registers on exit    D0: result code
  3664.      Result codes
  3665.        noErr                       0 No error
  3666.        memFullErr               -108 Ran out of memory
  3667.        gestaltDupSelectorErr   -5552 Selector already exists
  3668.        gestaltLocationErr      -5553 Function not in system heap
  3669.  
  3670. FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
  3671.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3672.      Available since System 6.0.4.
  3673.      Trap Macro 
  3674.        _ReplaceGestalt ($A5AD)
  3675.      Registers on entry   A0: address of new selector function
  3676.                           D0: selector code
  3677.      Registers on exit    A0: address of old selector function
  3678.                           D0: result code
  3679.      Result codes
  3680.        noErr                       0 No error
  3681.        gestaltUndefSelectorErr -5551 Undefined selector
  3682.        gestaltLocationErr      -5553 Function not in system heap
  3683.  
  3684. #define CallSelectorFunctionProc(userRoutine, selector, response)  \
  3685.         (*userRoutine)(selector, response)
  3686.      Trap Macro 
  3687.        ??? (???)
  3688.      Registers on entry   ???
  3689.      Registers on exit    ???
  3690.      Result codes
  3691.        noErr                       0 No error
  3692.        ???                       ??? ???
  3693.  
  3694. #define NewSelectorFunctionProc(userRoutine)  \
  3695.         (SelectorFunctionUPP)(userRoutine)
  3696.      Trap Macro 
  3697.        ??? (???)
  3698.      Registers on entry   ???
  3699.      Registers on exit    ???
  3700.      Result codes
  3701.        noErr                       0 No error
  3702.        ???                       ??? ???
  3703.          
  3704. Gestalt Value Routines
  3705. ----------------------
  3706. Please note the GestaltValue routines can be invoked through a library,
  3707. but since System 7.5 the GestaltValue routines are also part of the OS.
  3708. The GestaltValue routines are stack based and don't use registers.
  3709. The GestaltValue library first checks to see if trap $ABF1 is implemented
  3710. (System 7.5 and later). If trap $ABF1 is implemented, all calls to the
  3711. library are routed to this trap, otherwise the library uses embedded code.
  3712. Several Apple System selectors use the GestaltValueDispatch A-trap to
  3713. install the response value starting with System 7.5.
  3714.  
  3715. WARNING:
  3716. The GestaltValue library distributed originally checks for the wrong trap
  3717. (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
  3718. trap is installed by the Thread Manager extension.
  3719. (Most info about the GestaltValue functions was provided by
  3720. Marco Piovanelli and Dave Radcliffe).
  3721.  
  3722. FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  3723.      Available as library and since System 7.5.
  3724.      Trap Macro                      Selector
  3725.        _GestaltValueDispatch ($ABF1) $0401
  3726.      Result codes
  3727.        noErr                       0 No error
  3728.        unimpErr                   -4 Unimplemented core routine
  3729.        memFullErr               -108 Ran out of memory
  3730.        (and other memory errors)
  3731.        gestaltDupSelectorErr   -5552 Selector already exists
  3732.  
  3733. FUNCTION ReplaceGestaltValue (selector: OSType;
  3734.                               replacementValue: LongInt): OSErr;
  3735.      Available as library and since System 7.5.
  3736.      Trap Macro                      Selector
  3737.        _GestaltValueDispatch ($ABF1) $0402
  3738.      Result codes
  3739.        noErr                       0 No error
  3740.        unimpErr                   -4 Unimplemented core routine
  3741.        memFullErr               -108 Ran out of memory
  3742.        (and other memory errors)
  3743.        gestaltUndefSelectorErr -5551 Undefined selector
  3744.  
  3745. FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
  3746.      Available as library and since System 7.5.
  3747.      Trap Macro                      Selector
  3748.        _GestaltValueDispatch ($ABF1) $0203
  3749.      Result codes
  3750.        noErr                       0 No error
  3751.        unimpErr                   -4 Unimplemented core routine
  3752.        gestaltUndefSelectorErr -5551 Undefined selector
  3753.  
  3754. Undocumented Gestalt Manager Routines
  3755. -------------------------------------
  3756. FUNCTION? GestaltDispatch? (???):OSErr;?
  3757.      Trap Macro
  3758.        _GestaltDispatch ($A0AD)
  3759.      Registers on entry   ???
  3760.      Registers on exit    ???
  3761.      Result codes
  3762.        noErr                       0 No error
  3763.        ???
  3764.  
  3765.      NOTE:
  3766.      Found in the MPW, THINK C and THINK Pascal Traps Interface file
  3767.      on 'Bookmark CD 14'.
  3768.      Available since System 6.0.4 but code will always return error -50
  3769.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  3770.  
  3771. FUNCTION? GetGestaltProcPtr? (selector?: OSType;
  3772.                               var selectorfunction: ProcPtr): OSErr;?
  3773.      Trap Macro
  3774.        _GetGestaltProcPtr ($A7AD)
  3775.      Registers on entry   D0: selector code?
  3776.      Registers on exit    ??: address of selector function
  3777.      Result codes
  3778.        noErr                       0 No error
  3779.        ???
  3780.  
  3781.      NOTE:
  3782.      Found in the MPW Traps Interface file on 'Bookmark CD 14'.
  3783.      Available since System 6.0.4 but code will always return error -50
  3784.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  3785.      I (Rene Ros) have written Pascal code to do what this system call
  3786.      probably is planned to do in the future.
  3787.  
  3788. FUNCTION SetGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  3789.      Available since System 7.5?
  3790.      Trap Macro                      Selector
  3791.        ???                           ???
  3792.      Result codes
  3793.        noErr                       0 No error
  3794.        ???
  3795.  
  3796. Kilo-liners
  3797. ===========
  3798. This chapter will list very small pieces of code which are related to
  3799. any Gestalt Routine.
  3800.  
  3801. Direct Gestalt Calls
  3802. --------------------
  3803. You can use the following code to call directly the Gestalt, NewGestalt and
  3804. ReplaceGestalt traps. In that way the (large) glue code will not be
  3805. installed by your compiler. (Contributions by Lawrence D'Oliveiro and
  3806. Marco Piovanelli).
  3807.  
  3808. FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
  3809.    inline $225F, $201F, $A1AD, $2288, $3E80;
  3810.       { move.l (sp)+, a1 }
  3811.       { move.l (sp)+, d0 }
  3812.       { _Gestalt }
  3813.       { move.l a0, (a1) }
  3814.       { move.w d0, (sp) }
  3815.  
  3816. FUNCTION NewGestalt (selector: OSType;
  3817.                      gestaltFunction: ProcPtr): OSErr;
  3818.    inline $205F, $201F, $A3AD, $3E80;
  3819.       { move.l (sp)+, a0 }
  3820.       { move.l (sp)+, d0 }
  3821.       { _NewGestalt }
  3822.       { move.w d0, (sp) }
  3823.  
  3824. FUNCTION ReplaceGestalt (selector: OSType;
  3825.                          gestaltFunction: ProcPtr;
  3826.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  3827.    inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
  3828.       { move.l (sp)+, a1 }
  3829.       { move.l (sp)+, a0 }
  3830.       { move.l (sp)+, d0 }
  3831.       { _ReplaceGestalt }
  3832.       { move.l a0, (a1) }
  3833.       { move.w d0, (sp) }
  3834.  
  3835. Direct GestaltValue Calls
  3836. -------------------------
  3837. You can use the following code to call directly the NewGestaltValue,
  3838. ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
  3839. trap is available. *AS04
  3840.  
  3841. FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
  3842.    inline $303C, $0401, $ABF1;
  3843.  
  3844. FUNCTION ReplaceGestaltValue(selector: OSType,
  3845.                              replacementValue: LongInt): OSErr;
  3846.    inline $303C, $0402, $ABF1;
  3847.      
  3848. FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
  3849.    inline $303C, $0203, $ABF1;
  3850.  
  3851. GestaltSelectorZero
  3852. -------------------
  3853. With all the selectors that are supposed to return non-zero values if
  3854. installed, it may be helpful to have an utility routine that returns a zero
  3855. value (instead of an error) if a selector isn't installed. It's short and
  3856. sweet because it makes a direct call to the _Gestalt trap; of course this
  3857. means you can't use it on systems earlier than 6.0.4.
  3858. (Contributed by Lawrence D'Oliveiro)
  3859.  
  3860. FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
  3861. {returns the value of the specified Gestalt selector,}
  3862. {or zero if unknown.}
  3863.    inline $201F, $A1AD, $6702, $91C8, $2E88;
  3864.       { move.l (sp)+, d0 }
  3865.       { _Gestalt }
  3866.       { beq.s @2 }
  3867.       { sub.l a0, a0 }
  3868.       { @2: move.l a0, (sp) }
  3869.  
  3870. GestaltBitTest
  3871. --------------
  3872. The GestaltBitTest is a piece of inline assembly code which tests if the
  3873. specified bit is set in the value from the specified Gestalt selector
  3874. (false if the Gestalt call returns an error).
  3875.  
  3876. Example:
  3877.     GestaltBitTest(gestaltAppleEventsAttr, gestaltAppleEventsPresent)
  3878.  
  3879. (Contributed by Lawrence D'Oliveiro)
  3880.  
  3881. FUNCTION GestaltBitTest(Selector: OSType; BitNr: Integer): Boolean;
  3882.    inline
  3883.       $321F, $201F, $A1AD, $6702, $91C8, $2008, $0300, $56C0, $4400, $1E80
  3884.       { move.w (sp)+, d1 }
  3885.       { move.l (sp)+, d0 }
  3886.       { _Gestalt }
  3887.       { beq.s @2 }
  3888.       { sub.l a0, a0 }
  3889.       { @2: move.l a0, d0 }
  3890.       { btst d1, d0 }
  3891.       { sne.b d0 }
  3892.       { neg.b d0 }
  3893.       { move.b d0, (sp) }
  3894.  
  3895. Call Gestalt Function Direct
  3896. ----------------------------
  3897. Suppose you have just loaded an GDEF resource, or replaced one and keep the
  3898. original around and store a pointer to it somewhere private. Suppose next,
  3899. you want to call it to obtain a response without using yet another selector.
  3900. Thats what the following inline code is useful for. Just pass it the
  3901. usual selector and result parameters but also a pointer to the GDEF
  3902. (Lock it if it's a relocatable block).
  3903.  
  3904. FUNCTION CallGestaltDEF (selector: OSType;
  3905.                          var result: LongInt;
  3906.                          aRoutine: ProcPtr): OSErr;
  3907.     inline $205F, $4E90;
  3908.        { move.l (sp)+, a0 }
  3909.        { jsr (a0) }
  3910.  
  3911. Reports
  3912. =======
  3913. When someone reports some findings involving several selectors and/or a
  3914. report is too long to include with the selector entry above, that report
  3915. is listed here. They should be as short as possible with the maximum
  3916. amount of information.
  3917.  
  3918. Accessing the Gestalt Manager
  3919. -----------------------------
  3920. Several applications can use additional code to expand their capabilities
  3921. and using this they may be able to access the Gestalt Manager. The software
  3922. listed below are additional code providing access to the Gestalt Manager.
  3923.  
  3924. Only a few locations are listed here, use the filename to search for other
  3925. locations. Or use the known mirror sites of FTP sites.
  3926.  
  3927. CheckGestaltFor (Neil Shulman)
  3928.      Hypercard external to access the Gestalt Manager.
  3929.  
  3930.      ftp://sumex-aim.stanford.edu/info-mac/card/check-gestalt-for-xcmd.hqx
  3931.  
  3932. Gestalt Pro 1.1.2 (Rene G.A. Ros)
  3933.      External for 4TH Dimension Relational Database application from
  3934.      ACI/ACI US.
  3935.  
  3936.      ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-pro-112.hqx
  3937.  
  3938. Gestalt XFCN 3.2.1 (Jeff Iverson)
  3939.      Hypercard XFCN to query the Gestalt Manager.
  3940.  
  3941.      ftp://sumex-aim.stanford.edu/info-mac/card/gestalt-321.hqx
  3942.  
  3943. GestaltExt (Andre Cavegn)
  3944.      External for 4TH Dimension Relational Database application from
  3945.      ACI/ACI US.
  3946.  
  3947.      ftp://sumex-aim.stanford.edu/info-mac/dev/a4d/ext/gestalt-ext.hqx
  3948.  
  3949. Get Gestalt (AppleScript addition) 1.2 by Mark Alldritt
  3950.      Provides access to the Gestalt Manager for AppleScript scripts.
  3951.  
  3952.      ftp://gaea.kgs.ukans.edu/applescript/osaxen/script-tools-131-as.hqx
  3953.  
  3954. Informant XFCN 1.0 (Jeff Iverson)
  3955.      Hypercard XFCN to query the Gestalt Manager.
  3956.  
  3957.      ftp://sumex-aim.stanford.edu/info-mac/card/information-10-xfcn-demo.hqx
  3958.  
  3959. AppleShare File & Print Server selector codes
  3960. ---------------------------------------------
  3961. The selectors are defined when the application has run. If it is still
  3962. running (or wasn't properly quit) the response is one. When the application
  3963. has properly quit the response is zero.
  3964.      admn AppleShare Admin
  3965.      asps AppleShare Print Server
  3966.      hgfd AppleShare File Server
  3967. (these three are undocumented)
  3968.  
  3969. AppleTalk
  3970. ---------
  3971. With the release of the System 7 Tuner product, AppleTalk will not be
  3972. loaded at startup, if prior to the previous shutdown AppleTalk was turned
  3973. off in the Chooser. Under this circumstance, the 'atkv' selector is not
  3974. available. If the 'atkv' selector is not available under System 7, this is
  3975. an indicator that AppleTalk cannot be turned on without doing so in the
  3976. Chooser and rebooting the system. *AT02
  3977.  
  3978. Copy protection using Gestalt
  3979. -----------------------------
  3980. In D e v e l o p 17 Brigham Stevens suggests to use Gestalt and FindFolder
  3981. as a way to implement copy protection in the most compatible way possible.
  3982. By determining several characteristics at installation from the Gestalt Mgr
  3983. and the DirID of the System Folder with FindFolder you can check for this
  3984. info later. When is has changed you can then ask for the serial number
  3985. or a password again. (Rene Ros)
  3986.  
  3987. Environs & SysEnvirons
  3988. ----------------------
  3989. Using Macsbug it is very easy to determine that the SysEnvirons function
  3990. uses the Gestalt Manager to fill the fields of the system environment
  3991. record. So, when you install your own gestalt definitions by using the
  3992. ReplaceGestalt function this will also change the information returned
  3993. by SysEnvirons.
  3994. The older Environs function doesn't use the Gestalt Mgr and the code
  3995. seems to look only at two values in ROM. (Rene Ros)
  3996.  
  3997. Executor Mac-emulator
  3998. ---------------------
  3999. Executor is a Macintosh Emulator for DOS machines, published by
  4000. Abacus Research and Development, Inc. (1993/1994). The Gestalt Manager is
  4001. also emulated and the version I have seen (on a 486DX) says it's a MacPlus
  4002. with a 68LC040 processor with MMU. The 'sysv' selector returns 0x607 but
  4003. it also lists a lot of selectors usually not installed by 6.0.7. Like
  4004. the 'edtn' and 'stdf' selectors. For those it then simply returns zero.
  4005. Strangely enough the 'tabl' selector is not installed, but this doesn't
  4006. confuse the Gestalt! application! (Rene Ros)
  4007.  
  4008. Gestalt Apple Event
  4009. -------------------
  4010. The scriptable Finder, implemented by the Finder Scripting Extension,
  4011. provides an Apple event to query the Gestalt Manager. This can be used from
  4012. AppleScript using the 'computer' command.
  4013. And using the PPC Toolbox this now also means you can query a remote
  4014. computer, provided the Finder Scripting Extension is installed.
  4015. The Finder Scripting Extension is installed with System 7.5 (which also
  4016. includes Finder 7.1.4) but can also be used with Finder 7.1.3. The
  4017. extension will later be rolled into the Finder.
  4018.  
  4019. The direct parameter for this event is a Gestalt selector code. If this is
  4020. the only parameter, the result is the result of calling Gestalt with that
  4021. code.
  4022.  
  4023. An optional second parameter can be included, in which case it is a 32 bit
  4024. number against which the result of calling Gestalt with the given selector
  4025. is tested. When this parameter is present, the event returns true if all
  4026. bits set in the optional parameter are set in the result from Gestalt, and
  4027. false otherwise. In AppleScript, when telling Finder:
  4028.      computer "os  " has 3
  4029. returns true if the low-order two bits are set in the result from Gestalt.
  4030. The equivalent event built "by hand" would be addressed to Finder (on the
  4031. machine of interest) and would have the parameters
  4032.      key        value      type
  4033.      '----'     'os  '     typeType        (alternative:  "os  "  typeChar)
  4034.      'has '     3          typeLongInteger ('has ' is keyASPrepositionHas)
  4035.  
  4036. The event class would be kAEFinderSuite ('fndr'), and the event ID would be
  4037. kAEGestalt ('gstl').
  4038.  
  4039. For more reading:
  4040.      D e v e l o p Magazine, Issue 20. "Scripting the Finder from your
  4041.            Application" by Greg Anderson, page 65.
  4042.      Finder Suite documentation available (starting in March 1995) on the
  4043.            Developer CD Series (Reference) as
  4044.            :Technical Documentation:Apple Events Registry & Suites:
  4045.             AE Suite Finder:Finder Suite
  4046.  
  4047. (John W. Baxter)
  4048.  
  4049. Gestalt Applications
  4050. --------------------
  4051. Several specialized applications are available to display all installed
  4052. Gestalt selectors. And several other applications heavily depend on the
  4053. Gestalt Manager to show information on hardware and software.
  4054.  
  4055. Only a few locations are listed here, use the filename to search for other
  4056. locations. Or use the known mirror sites of FTP sites.
  4057.  
  4058. DisplayGestalt (Craig Marciniak)
  4059.      Small application displays configuration using Gestalt Mgr, includes
  4060.      C-source.
  4061.  
  4062.      ftp://mac.archive.umich.edu/development/libraries/displaygestalt.cpt.hqx
  4063.  
  4064. Gestalt! 3.0 (Roland Mansson)
  4065.      Displays responses from installed selectors.
  4066.  
  4067.      ftp://ftp.lu.se/pub/mac/util/gestalt300.cpt.hqx
  4068.      ftp://sumex-aim.stanford.edu/info-mac/cfg/gestalt-300.hqx
  4069.  
  4070.      Contact: Roland Mansson (roland.mansson@ldc.lu.se)
  4071.  
  4072. GestaltDA 0.4 (Carl C. Hewitt, Apple Computer Inc.)
  4073.      Displays responses from installed selectors.
  4074.  
  4075.      CD-ROM: Bookmark CD (Apple Developer Group)
  4076.      :Tools & Applications:OS/Toolbox:GestaltDA 0.4
  4077.  
  4078.      Contact: D e v e l o p (dev.subs@applelink.apple.com)
  4079.  
  4080. Gestalt Environment 7
  4081.      Application to list a number of installed selectors.
  4082.  
  4083.      mailto:gestalt-selectors-list-request@bio.vu.nl
  4084.             'archive get software/ge7.hqx'
  4085.  
  4086. Go Gestalt appl 1.5 (Paul Reznick)
  4087.      Displays information obtained thru the Gestalt Mgr. 
  4088.  
  4089.      mailto:gestalt-selectors-list-request@bio.vu.nl
  4090.             'archive get software/go-gestalt-15.sit.hqx'
  4091.  
  4092.      Contact: Paul Reznick (PRzeznik@aol.com)
  4093.  
  4094. Tattle-Tech appl (Decision Makers Software, Inc.)
  4095.      Uses Gestalt manager extensively to display all know information.
  4096.  
  4097.      ftp://sumex-aim.stanford.edu/info-mac/cfg/tattle-tech-215.hqx
  4098.      ftp://sumex-aim.stanford.edu/info-mac/cfg/tattle-tech-217-updt.hqx
  4099.  
  4100.      Contact: John Mancino (mancino@decismkr.com)
  4101. TechTool appl 1.0.6 (Micromat Computer Systems)
  4102.      Application to reset PRAM, rebuild DTDB and show Gestalt info.
  4103.  
  4104.      ftp://sumex-aim.stanford.edu/info-mac/cfg/tech-tool-106.hqx
  4105.  
  4106. GestaltValue
  4107. ------------
  4108. The first time you call NewGestaltValue, the library installs two non-
  4109. relocatable blocks in the system heap and the 'gval' gestalt selector. One
  4110. of the blocks is filled with code: it's actually a gestalt definition that
  4111. implements GestaltValue's shared mechanism. The second block contains the
  4112. selectors and values GestaltValue manages. The response returned by the
  4113. 'gval' selector is a pointer to the second non-relocatable block in the
  4114. system heap. (Marco Piovanelli)
  4115.      
  4116. Dave Radcliffe wrote on 23 March 1993 regarding some information, about the
  4117. GestalValue glue code, listed with version 1.4 of this list:
  4118. ---------------------------------------------------------------------------
  4119. The information on the _GestaltValue trap ($ABF2) is correct based on the
  4120. glue, but because of a mistake on my part, the glue should be checking for
  4121. $ABF1. A new version of the glue is being distributed on the developer CD
  4122. next month...
  4123. ---------------------------------------------------------------------------
  4124.  
  4125. The GestaltValue library can be found at Info-Mac.
  4126. (ftp://sumex-aim.stanford.edu/info-mac/dev/gestalt-value-lib.hqx)
  4127.  
  4128. GestaltValue & CodeWarrior Problem
  4129. ----------------------------------
  4130. The GestaltValue.o library is made up of several routines. The first time
  4131. someone calls a routine from the library, the library installs itself into
  4132. the System Heap and uses NSetTrapAddress to set up its own trap. Subsequent
  4133. calls to the library will just map to a trap call. This allows the code to
  4134. be loaded only once in memory, even if several INITs use GestaltValue.
  4135.  
  4136. What's the problem? In order to install itself into the System Heap, the
  4137. GestaltValue code must compute how big it is; it does this by subtracting
  4138. the address of the first routine from the address of a stub routine located
  4139. after the last real routine. That's common practice. It assumes, however,
  4140. that the linker will preserve the order of the routines.
  4141.  
  4142. But CodeWarrior's "Import MPW library" command does not preserve the order
  4143. of the functions it finds inside the .o file. As a result, when you call
  4144. NewGestaltValue for the first time, the library finds its own size to be
  4145. negative. It asks the Memory Manager for a block of negative size and
  4146. returns an error (memFullErr, I believe).
  4147.  
  4148. Note that this only happens if your software is the first to call
  4149. GestaltValue since the machine started up. Also, I think it won't happen
  4150. under System 7.5 because GestaltValue is part of 7.5. If your program
  4151. requires 7.5, you probably don't need the GestaltValue.o glue at all.
  4152. (Francois Pottier)
  4153.  
  4154. Glue code
  4155. ---------
  4156. These development/compiler software contain glue-code to handle a few
  4157. selectors even when the Gestalt Manager is not available.
  4158.  
  4159.      THINK C      (5.0 and later)
  4160.      THINK Pascal (4.0 and later)
  4161.      MPW          (3.2 and later)
  4162.  
  4163. The following selectors can be handled by the glue-code, with all others
  4164. an error (gestaltUndefSelectorErr) will be returned.
  4165.  
  4166.      gestaltAppleTalkVersion = 'atlk';
  4167.      gestaltFPUType          = 'fpu ';
  4168.      gestaltKeyboardType     = 'kbd ';
  4169.      gestaltLogicalRAMSize   = 'lram';
  4170.      gestaltMachineType      = 'mach';
  4171.      gestaltMMUType          = 'mmu ';
  4172.      gestaltPhysicalRAMSize  = 'ram ';
  4173.      gestaltProcessorType    = 'proc';
  4174.      gestaltQuickdrawVersion = 'qd  ';
  4175.      gestaltSystemVersion    = 'sysv';
  4176.      gestaltVersion          = 'vers';
  4177.  
  4178. Unless you are using direct calls, ofcourse.
  4179. (Source: THINK Reference 2.0)
  4180.  
  4181. Machine Names
  4182. -------------
  4183. The STR# resource with ID -16395, inside the system file, contains a list
  4184. of Macintosh machine names. The selector gestaltMachineType ('mach')
  4185. returns a value which can be used as the index value with an GetIndString
  4186. call to get the appropriate machine name. There area few exceptions to
  4187. this and these are discussed in this report.
  4188.  
  4189. On Macintosh Performas (System 7.1), the Machine Name STR# resource will
  4190. always return the string "Macintosh" (not "Macintosh Performa 450" or
  4191. "Performa 450").  On all other Macintoshes, the string will return the
  4192. correct name. (Mark Dawson)
  4193. [And] if you do a dirty install [of System 7.5 or later] (right on top of
  4194. an existing, pre-7.5 System), your machine type and icon will be preserved.
  4195. If you do a clean install, you'll get the generic name/icon in the
  4196. Finder's "About This Macintosh..." dialog. (Tim Swihart)
  4197. This can be fixed by using the freeware Mac Identifier extension, located
  4198. at ftp://sumex-aim.stanford.edu/info-mac/gui/mac-identifier-111.hqx. Or the
  4199. WhoAmI? application, which can be found at
  4200. ftp://sumex-aim.stanford.edu/info-mac/cfg/who-am-i-121.hqx. (Rene Ros)
  4201. Apple says that in the future ID's will be reused and the kMachineNameStrID
  4202. will contain only the text '  Macintosh' (two spaces first) *AT01
  4203. This policy seems to have changed because the System 7.5 Update enabler
  4204. installed by System 7.5 Update 1.0 either contains '  Macintosh',
  4205. '  Macintosh PowerBook' or '  Power Macintosh' (all with two leading
  4206. spaces). Perhaps the 'mach' selector in the future will be used to indicate
  4207. the category only. Then we'll get another mechanism/selector to get the
  4208. real machine type? Rumour goes a new ROM is developed which allows clone
  4209. makers to have their machines identified properly. (Rene Ros, with some
  4210. info from John Mancino)
  4211.  
  4212. All system enablers have the machine name resource included to replace the
  4213. one in the System file. In most cases this resource lists the same
  4214. Macintosh names as the original one in System 7.1 and adds the names of the
  4215. machines the enabler is intended for. But some only list the machines the
  4216. enabler is used with. Therefor, if you want to display the name of a
  4217. machine which isn't of the current machine type you can't rely on this
  4218. resource anymore.
  4219. Using the archive mail server you can obtain a ResEdit file with the
  4220. complete machine name string resource. The command to use is
  4221.     'archive get src/machname-str.sit.hqx'
  4222. I will keep it up-to-date along with the changes in the gestaltMachineType
  4223. entry. (Rene Ros)
  4224.  
  4225. The Performa 600 was originally planned to ship as Macintosh IIvm but the
  4226. name was changed because users thought 'vm' meant 'Virtual Memory'. MOST
  4227. system enablers (i.e. 001, 040, 065 & 201) contain this original name.
  4228.  
  4229. The Machine Name resource in the MAE Enabler 1.0 contains the string
  4230. "MAE 1.0" in these items: 19, 28, 130, 131 and 132.
  4231.  
  4232. The PowerPC Enabler 1.1 enabler contains a Machine Name resource which
  4233. lists these names:
  4234.      items 1-66 contain the item number itself except:
  4235.            12 Power Macintosh 8100/120
  4236.            31 Paula's Desk Macintosh
  4237.            39 Workgroup Server 9150
  4238.            40 Power Macintosh 8100/110
  4239.            46 Power Macintosh 6100/66
  4240.            47 Power Macintosh 7100/80
  4241.            55 Power Macintosh 8100/100
  4242.            64 Power Macintosh 8100/60
  4243.            65 Power Macintosh 8100/80
  4244.            66 Power Macintosh 8100/100
  4245.      items 67-115 are empty except:
  4246.            75 Power Macintosh 6100/60
  4247.           100 Power Macintosh 6100/66
  4248.           101 Power Macintosh 6100/80
  4249.           111 Power Macintosh 7100/60
  4250.           112 Power Macintosh 7100/66
  4251.           113 Power Macintosh 7100/80
  4252.      items 116-123 contain the text "  Power Macintosh"
  4253. "Paula's Desk Macintosh" disappeared again with version 1.1.1 of the
  4254. PowerPC enabler, it was replaced by the number '31' ! :-)
  4255. The duplicate names for some of the Power Macintosh models was resolved
  4256. and is it is now know that some values belong to a never to be released
  4257. ROM version. See the gestaltMachineType entry for more detailed
  4258. information.
  4259.  
  4260. Macintosh Application Environment
  4261. ---------------------------------
  4262. Using the MAE 1.0 demo version is quite stressful since it expires after
  4263. eight hours! Copying files to a disk doesn't work also because all you
  4264. are left with is an file with only the resource map and a few resources.
  4265. All resources are maintained by MAE. But by using ResEdit it is possible
  4266. to copy the resources itself one for one to a file on a floppy disk.
  4267. Under MAE 1.0 these results were found on a SUN SPARCstation 5:
  4268.      a/ux     3.0.1
  4269.      cput         5   (MC68040)
  4270.      fpu          0   (none)
  4271.      mach        19   (which is the LC, but the MAE Enabler only has
  4272.                        'MAE 1.0' in the machine name STR# resource)
  4273.      mmu          0   (none)
  4274.      proc         5   (MC60400)
  4275.      rom       2048K
  4276.      romv      1917
  4277.      snd          0   (no sound support, no system beeps to choose from)
  4278.      snhw      awac
  4279.      cith         0   (huh?)
  4280.  
  4281. See also a note with the gestaltMachineType ('mach') selector entry.
  4282.  
  4283. (Rene Ros, with thanks to Jos van Wezel for providing the workstation
  4284.  and installing the software.)
  4285.  
  4286. Macintosh Clones
  4287. ----------------
  4288. So far I know of two Macintosh clones. One is made by Pioneer and one by
  4289. Radius. The Pioneer clone (codename Pioneer MPC-GX1 Multimedia Personal
  4290. Computer) is an exact duplicate of the Power Macintosh 6100/66.
  4291. The Radius clone (called System 100) is also an exact duplicate, but now
  4292. of the Power Macintosh 8100 (clock speed unknown). When seen on the
  4293. CeBIT '95 both ran System 7.5 and had the normal Apple ROMs. Hence they
  4294. had the  machine type selector ('mach') installed. (Rene Ros)
  4295.  
  4296. Modern Memory Manager
  4297. ---------------------
  4298. The Universal Headers from Apple have a revised Memory Manager heap zone
  4299. header and named constants, which provide a documented methode of detecting
  4300. the Modern Memory Manager. It is as yet unknown whether the kNewDebugHeap
  4301. flag set implies kNewStyleHeap set.  The code here does not assume so...but
  4302. some might wish to test each flag in its own function.
  4303.  
  4304. Boolean IsModernMemory (void) {
  4305.  
  4306.     THz myZone = GetZone ();
  4307.  
  4308.     return (myZone->heapType & (kNewStyleHeap | kNewDebugHeap)) != 0;
  4309.     }
  4310.  
  4311. If you use older headers, replace the return statement with this line:
  4312.  
  4313.     return (0 != ((*myZone).maxNRel & 0x0600));
  4314.  
  4315. The new headers have the heapType field as a Byte (followed by a Byte
  4316. filler), together replacing the maxNRel short.  The bits in it are defined
  4317. by these masks:
  4318.  
  4319. enum {
  4320. /* masks for Zone->heapType field */
  4321.     k32BitHeap      = 1, /* valid in all Memory Managers */
  4322.     kNewStyleHeap   = 2, /* true if new Heap Manager is present */
  4323.     kNewDebugHeap   = 4  /* true if new Heap Manager is running in debug
  4324.                             mode on this heap */
  4325. };
  4326.  
  4327. (John W. Baxter, Eric Schlegel)
  4328.  
  4329. PPC Libraries
  4330. -------------
  4331. Some of the Gestalt selector functions are smart enough to avoid crashing
  4332. when the user removed the library file from the Extensions folder without
  4333. restarting the machine. And some selector functions aren't that smart.
  4334. Safest is to preflight the first call you make into the library (for code
  4335. or data) or include a preflight in your startup. 
  4336. (based on a posting by John Baxter in the comp.sys.mac.programmer Usenet
  4337. newsgroup on Internet.)
  4338.  
  4339. QuickTime
  4340. ---------
  4341. If you install QuickTime under System 6, a major portion of the Alias
  4342. Manager and FSSpec support is also added. But, QT doesn't implement the
  4343. Gestalt selectors because the implementation is not complete. You must
  4344. check for either Alias Mgr or QuickTime. (Michael Hecht)
  4345.  
  4346. These are the limitations for the Alias Mgr installed by QuickTime:
  4347.     - NewAlias will accept fromFile parameter, but it never creates a
  4348.       relative alias.
  4349.     - NewAliasMinimalFromPath and ResolveAliasFile aren't available.
  4350.     - ResolveAlias and UpdateAlias ignore the fromFile parameter.
  4351.     - MatchAlias may be called but the kARMMultVols, kARMSearchMore and
  4352.       kARMSearchRelFirst flags aren't available and ignored if passed.
  4353.       Also, a matchProc will never be called.
  4354.     - Won't mount network volumes.
  4355.  
  4356. And these are the FSSpec calls available with System 6 when QuickTime is
  4357. installed:
  4358.     - FSMakeFSSpec
  4359.     - FSpOpenDF
  4360.     - FSpOpenRF
  4361.     - FSpCreate
  4362.     - FSpDirCreate
  4363.     - FSpDelete
  4364.     - FSpGetFInfo
  4365.     - FSpSetFInfo
  4366.     - FSpSetFLock
  4367.     - FSpRstLock
  4368.     - FSpRename
  4369.     - FSpCatMove
  4370.     - FSpOpenResFile
  4371.     - FSpCreateResFile
  4372.     - FSpGetCatInfo
  4373.  
  4374. See for more information Technical Note M.QT.MovieTB.Q&As (QT 510) and
  4375. D e v e l o p 11 magazine on page 122.
  4376.  
  4377. RAM Doubler
  4378. -----------
  4379. RAM Doubler implements virtual memory in a different way than the normal
  4380. Apple VM mechanism. It looks like this is done in corporation with Apple
  4381. since a selector installed by RAM Doubler is 'vmem' which is all lower-case
  4382. and thus reserved by Apple.
  4383. In addition the response from this selector is always LongInt('RaM2') which
  4384. is the creator type of RAM Doubler. It seems this selector is used to
  4385. indicate which software is used to extend the capabilities of the Virtual
  4386. Memory Manager.
  4387. RAM Doubler also installs the selector 'vmFn' which seems to be a pointer
  4388. to a function to control RAMDoubler (1.0?) or to obtain information. It
  4389. looks like registers are used to pass parameters to and from that function.
  4390. D0 perhaps holds values 1 to 6 as input and perhaps A0 is used for the
  4391. return value.
  4392.  
  4393. FUNCTION VMExtensionControl? (selector: Integer; VAR result: LongInt): OSErr;
  4394.      Registers on entry   D0: selector code
  4395.      Registers on exit    A0: result code
  4396.                           D0: error code
  4397.      Result codes
  4398.        noErr                       0 No error
  4399.        invalidSelector?          206 Invalid selector value?
  4400.        ???
  4401.  
  4402. Values used as selector:
  4403.      kVMControlType?        = 1;      {type VM extension: RaM2}
  4404.      kVMControlVersion?     = 2;      {version VM extension as BCD}
  4405.      kVMControl???          = 3;      {engine version as BCD?: $0313}
  4406.      kVMControlMemSize?     = 4;      {unknown: Get/SetMemorySize?}
  4407.      kVMControlMemSize?     = 5;      {unknown: Get/SetMemorySize?}
  4408.      kVMControl???          = 6;      {unknown}
  4409.      kVMContolMaxFunctions? = MAXINT; {returns number of valid selectors}
  4410.                                       { or any other value outside the}
  4411.                                       { current 1-6 range}
  4412.  
  4413. Remember: all this is heresay!!!
  4414.  
  4415. Because of all this you can imagine RAM Doubler replaces/installs the
  4416. following System Software selectors (and I think it does):
  4417. lram, pgsz, ram , vm  , vmbs. (Anonymous, Rene Ros)
  4418.  
  4419. General Info
  4420. ============
  4421. The following sections provide general information needed or useful in
  4422. relation to the Gestalt Manager.
  4423.  
  4424. System Managers
  4425. ---------------
  4426. Listed below is a table with the different software components of the
  4427. System Software with their related selectors. The selectors listed with
  4428. this table are included in the (known) 'Apple System Software' and
  4429. 'Apple Additional Software' sections.
  4430. It provides a cross-reference to selectors and a starting point into other
  4431. documentation (Inside Macintosh).
  4432. With System Software versions before 6.0.4 (and Gestalt) you may need to
  4433. use TrapAvailable to determine the presence of certain system parts.
  4434.  
  4435. ===========================================================================
  4436. System Software components and their selectors
  4437. ===========================================================================
  4438. Manager                        Determine presence/features by using:
  4439. ---------------------------------------------------------------------------
  4440. 8*24 Graphics Card             gc24
  4441. A/UX                           a/ux
  4442. ADB Mgr                        ???
  4443. Alias Mgr                      alis
  4444. AOCE Utilities                 ???
  4445. Apple Event Mgr                evnt
  4446. Apple Guide                    help, reno
  4447. Apple Photo Access             kpcd
  4448. Apple Remote Access            arb , strm
  4449. AppleScript                    ascr, ascv
  4450. AppleTalk Mgr                  atkv, atlk
  4451. AppleTalk Phase 2              atkv >= 53
  4452. At Ease                        kids
  4453. Audio CD Access                aucd
  4454. Authentication Mgr             ???
  4455. Catalog Mgr                    ???
  4456. CD-ROM Software                aucd, hscd, iscd, kpcd, ufox
  4457. CD-ROM Software                see:
  4458.                                   Apple Photo Access
  4459.                                   Audio CD Access
  4460.                                   Foreign File Access
  4461.                                   High Sierra File Access
  4462.                                   ISO 9660 File Access
  4463. CloseView                      BSDa
  4464. Code Fragment Mgr              cfrg
  4465. Collection Mgr                 cltn
  4466. Color Mgr                      ???
  4467. Color Picker Mgr               cpkr
  4468. ColorSync Utilities            cmta, cmtc
  4469. Communications Toolbox         ctbm, ctbu, ctbv
  4470.                                see also:
  4471.                                   Communications Resource Mgr
  4472.                                   Connection Mgr
  4473.                                   Telephone Mgr
  4474.                                   Terminal Mgr
  4475. Communications Resource Mgr    crm 
  4476. Component Mgr                  cpnt
  4477. Compression Mgr                icmp
  4478. Connection Mgr                 conn
  4479. Control Mgr                    no need to check
  4480. Control Strip                  sdev, csvr
  4481. Cuda Dispatch Mgr              cuda? (for more info:
  4482.                                       Developer Note 'Mac LC630 &
  4483.                                       Quadra 630' and SAA7194/6 Philips
  4484.                                       Desktop Video Handbook)
  4485. Cursor Utilities               qd >= gestalt32BitQD
  4486. Data Access Mgr                dbac
  4487. Date, Time and Measurement Utilities
  4488.                                ???
  4489. Debugger                       debugger dependant, see also MacsBug
  4490. Deferred Task Mgr              no need to check?
  4491. Desk Manager                   no need to check
  4492. Desktop Mgr                    PBHGetVolParms fills GetVolParmsInfoBuffer.
  4493.                                Test for the bHasDesktopMgr bit (12) of the
  4494.                                vMAttrib field for all volumes.
  4495. Device Mgr                     no need to check
  4496. Dialog Mgr                     ditl, TrapAvailable(_DialogMgrDispatch)
  4497. Dictionary Mgr                 dict
  4498. Digital Signatures Mgr         dsig
  4499. Disk Initialization Mgr        fs  
  4500. Display Mgr                    dplv, dply
  4501. Docking Mgr                    ???
  4502. Drag Manager                   drag
  4503. Easy Access                    eajt, easy
  4504. Edition Mgr                    edtn
  4505. Event Mgr                      no need to check?
  4506. Exception Mgr                  no need to check?
  4507. File Mgr                       ???, fs  
  4508. File System Mgr                fs  , fsm 
  4509. File Transfer Mgr              fxfr
  4510. Finder                         fndr
  4511. FindFolder function            fold
  4512. Flagship                       flag
  4513. Font Mgr                       font
  4514. Foreign File Access            ufox
  4515. Gestalt Mgr                    gval, tabl, vers, TrapAvailable(_Gestalt),
  4516.                                TrapAvailable(_GestaltValueDispatch)
  4517. Graphics Worlds                (qd > gestaltOriginalQD and qd < gestalt8BitQD)
  4518.                                 or (qd >=gestalt32BitQD)
  4519. Help Mgr                       help
  4520. High Sierra File Access        hscd
  4521. Icon Utilities                 icon, TrapAvailable(_IconDispatch)
  4522. Interprogram Messaging Mgr     ???
  4523. ISO 9660 File Access           hscd, iscd
  4524. LAP Mgr                        atlk >= 53
  4525. List Mgr                       no need to check ?
  4526. MacsBug                        See PT 535 - MacsBug Q&As TechNote
  4527. MacTCP                         mtcp
  4528. Mathematical and Logical Utilities
  4529.                                no need to check?
  4530. Memory Mgr                     addr, cash, lram, os  
  4531.                                see also: Modern Memory Mgr
  4532. Memory Management Utilities    addr, TrapAvailable(_HWPriv) ?
  4533. Menu Mgr                       no need to check
  4534. Message Mgr                    mess
  4535. MIDI Mgr                       ???
  4536. Mixed Mode Mgr                 mixd
  4537. Modern Memory Mgr              see: Modern Memory Manager section of the
  4538.                                     Report chapter.
  4539. Movie Toolbox                  ???
  4540. Notification Mgr               nmgr, TrapAvailable(_NMInstall) with System
  4541.                                      before 6.0.4 ?
  4542. OCE Toolbox                    ocet, oceu
  4543. OS Utilities                   depends on call
  4544. OSA                            Use Component Mgr to check for Generic
  4545.                                Scripting Component
  4546. Package Mgr                    no need to check
  4547. Parameter RAM Utilities        no need to check?
  4548. PC Exchange                    pcxg
  4549. Picture Utilities              sysv >= $0700
  4550. Popup CDEF                     pop!
  4551. Power Mgr                      powr
  4552. PowerTalk                      see:
  4553.                                   Digital Signatures Mgr,
  4554.                                   OCE Toolbox,
  4555.                                   S&F Server,
  4556.                                   SDP Find,
  4557.                                   SDP Prompt,
  4558.                                   SDP Standard Directory,
  4559.                                   SMP Mailer,
  4560.                                   SMP Sendletter
  4561. PPC Toolbox                    ppc 
  4562. Printing Manager               no need to check?
  4563. Process Mgr                    os  
  4564. Queue Utilities                ???
  4565. QuickDraw                      qd  , qdrw
  4566. QuickDraw GX                   qdgx
  4567. QuickDraw GX Graphics          gfxa, grfx
  4568. QuickDraw GX Printing Mgr      pmgr
  4569. QuickTime                      qtim, qtrs
  4570. Realtime Mgr                   rtmr
  4571. Resource Mgr                   rsrc
  4572. S&F Server (PowerTalk)         see OCE Toolbox
  4573. SANE (OmegaSANE)               ???
  4574. Scrap Mgr                      scra
  4575. Script Mgr                     scr#, scri, TrapAvailable(_ScriptUtil)
  4576. SCSI Mgr                       scsi
  4577. SDP Find (PowerTalk)           dfnd
  4578. SDP Prompt (PowerTalk)         prpv
  4579. SDP Standard Directory (PowerTalk)
  4580.                                sdvr
  4581. Segment Mgr                    no need to check
  4582. Server control calls           TrapAvailable(ServerDispatch) [$A094]
  4583. Shared Library Mgr             aslm, slmp
  4584. Shutdown Mgr                   TrapAvailable(_Shutdown) ?
  4585. Slot Mgr                       nubs, slot, slt1, sltc
  4586. SMP Mailer (PowerTalk)         malr
  4587. SMP Sendletter (PowerTalk)     spsl
  4588. Sound Mgr                      snd , snhw, TrapAvailable(_SoundDispatch)
  4589. Sound Input Mgr                snd 
  4590. Speech Mgr                     ttsc
  4591. Speech Recognition             srta, srtb
  4592. Standard Catalog Package       ???
  4593. Standard File Package          stdf
  4594. Standard Mail Package          ???
  4595. Standard NBP                   nlup
  4596. Start Mgr                      ???
  4597. System Toolbox (hardware)
  4598.    coprocessor                 fpu
  4599.    disks                       intd
  4600.    keyboard                    kbd 
  4601.    machine                     mach
  4602.    misc. ICs                   hdwr, mmu , rbv , sccr, sccw, ser ,
  4603.                                via1, via2
  4604.    processor                   cput, proc, sysa
  4605.    RAM ICs                     ram , prty
  4606.    ROM ICs                     rom , romv
  4607.    trackpad                    tpad
  4608. System Toolbox (software)      lmem, micn, misc, os  , ostt, osyv,
  4609.                                sysv, tbtt, xttt
  4610. Telephone Mgr                  tele
  4611. Terminal Mgr                   term
  4612. Text Services Mgr              tsma, tsmv
  4613. Text Services Manager for TextEdit
  4614.                                tmTE, tmTV
  4615. Text Utilities                 depends on call
  4616. TextEdit                       te  , teat
  4617. Thread Mgr                     thds
  4618. Time Mgr                       tmgr
  4619. Toolbox Utilities              depends on call
  4620. Translation Mgr                xlat
  4621. TV & Video                     mtv2, tv  
  4622. Vertical Retrace Mgr           no need to check
  4623. Video                          see: TV & Video
  4624. Virtual Memory Mgr             pgsz, vm  
  4625. Window Mgr                     no need to check
  4626. Workstation Management Agent   wma.
  4627. WorldScript                    scri >= $0710, ws 1
  4628. XTND Technology                XTND
  4629. ---------------------------------------------------------------------------
  4630.  
  4631. Gestalt Problems
  4632. ----------------
  4633. This section lists all known problems related to the Gestalt selectors.
  4634. Each problem is also listed with each of the entries in the selector
  4635. chapters above. The table below provides an overview.
  4636.  
  4637. ===========================================================================
  4638. Overview Gestalt selector problems
  4639. ===========================================================================
  4640. Software                 Code  Problem                           Status
  4641. ---------------------------------------------------------------------------
  4642. Apple Photo Access ext   kpcd  always returns $FFFFFFF7          R unclear
  4643. AppleScript ext          ascv  different formats version         R problem?
  4644. AppleTalk                atkv  majorRev of version in hex          problem?
  4645. Color Picker ext         cpkr  incorrect return values?            problem?
  4646. Control Strip cp         sdev  two symbolic names defined          problem?
  4647. Easy Access cp           easy  incorrect return values           C unknown
  4648. Icon Utilities code      icon  not installed                     C SYS 712?
  4649. File System Manager      fsm   not installed with System 7.5       UPD 1.0
  4650. Link Tool Mgr 2.0 ext    ltma  incorrect version value?          R problem?
  4651. PowerTalk ext/Control Strip 1.0 cp
  4652.                          sdvr  same selector for both?           C CS 1.1?>
  4653. Speech Manager ext       ttsc  With Sys 7.5.1 PPC Glue bit set
  4654.                                 on 68K machines                    unclear
  4655. Speech Recognition ext   srta, srtb
  4656.                                installed even if no SR possible  R unclear
  4657. System (enablers)        *ALL* Gestalt Mgr with System 7.1.2     C SYS 7.5>
  4658.                          *ALL* Minimal System (Disk Tools) may
  4659.                                 lie about managers present       C unknown
  4660.                          *ALL CTB*
  4661.                                Comm. TB for System 6 doesn't
  4662.                                 install any of the CTB selectors C never
  4663.                          alis  QT part. installs but no selector C ok
  4664.                          cash  never installed?                    unclear
  4665.                          cput  incorrect values 68K header file  C fixed
  4666.                                system 7.5? returns incorrect
  4667.                                 values for 68K                   C unknown
  4668.                          ctbv  PM returned 1.1 while ROM has 1.0 C SU 3.0 >
  4669.                          fs    QT part. installs but no selector C ok
  4670.                          intd  bit 1 (disk spon up) not set      R SYS751>?
  4671.                          kbd   Adjustable Keyboard incorrect     C SU 2.0 >
  4672.                                not installed on PM7100 (7.1.2)     unclear
  4673.                          mixd  'gestaltMixedModeVersion' is
  4674.                                 incorrect name                   C fixed
  4675.                          qdrw  HasColor set on B/W machines (7.0)C unknown
  4676.                          rsrc  PartialRsrcs not set with 7.0     C 7.1 >
  4677.                          sltc  No information on IIsi slot       C never?
  4678.                          sysv  KanjiTalk 6.0.7 incorrect return value
  4679.                                                                  C sysvINIT
  4680.                                System 6.0.8 returns $0607          never
  4681.                                System 7.1.2/PPC card returns 0710  unclear
  4682.                          tv    Bits 3 and 4 incorrectly set        unclear
  4683.                                Bit 5 incorrectly clear             unclear
  4684. System/Apple Event ext   evnt  constants overlap header files    C fixed
  4685. ---------------------------------------------------------------------------
  4686. R       = unconfirmed but known to be reported to Apple
  4687. C       = confirmed
  4688. fixed   = problem is fixed, see selector entry for more information
  4689. ok      = meant to work this way...
  4690. unclear = unclear if it will ever be fixed
  4691. unknown = unknown when it will be fixed
  4692.  
  4693. One general Gestalt problem is that NewGestalt calls StripAddress on the
  4694. procptr passed to it, not on a local copy, so the stripping becomes
  4695. permanent. This is fixed by System 7.5.1.
  4696.  
  4697. History
  4698. -------
  4699. This section contains a short overview about the history of the Gestalt
  4700. Manager and its predecessors.
  4701.  
  4702.  
  4703. **ENVIRONS**
  4704.  
  4705.      PROCEDURE Environs (VAR rom,machine: INTEGER);
  4706.  
  4707. With the introduction of the Macintosh the system routine 'Environs' was
  4708. introduced. It allowed to obtain two pieces of information: the ROM version
  4709. and a value to indicate the machinetype. This "ROM oriented" way soon
  4710. appeared to be insufficient when the range of Macintosh hardware and
  4711. software became more diverse.
  4712.  
  4713.  
  4714. **SYSENVIRONS**
  4715.  
  4716.      FUNCTION SysEnvirons (versionRequested: INTEGER;
  4717.                            VAR theWorld: SysEnvRec): OSErr;
  4718.  
  4719. With System 4.1 a new system routine was introduced which allowed the
  4720. programmer to obtain more information about the current configuration.
  4721. Upon completion SysEnvirons filled the SysEnvRec with the information.
  4722. This was however an "all-or-nothing" situation, it was not possible to
  4723. obtain just one piece of information.
  4724. To allow for larger system environment records with more information one
  4725. needed to specify the version number of the system environment record. The
  4726. last version, introduced with System 6, was version 2 which had nine fields.
  4727.  
  4728.  
  4729. **GESTALT**
  4730.  
  4731.      FUNCTION Gestalt (code: LONGINT; VAR feature: LONGINT): OSErr;
  4732.  
  4733. You may wonder how one can be so stupid to list the Gestalt routine wrong...
  4734. However, this is how the Gestalt routine was presented to developers in
  4735. the Preliminairy Developer Note regarding System 7 in 1989. It was
  4736. originally written in 1988.
  4737. There was no selector of type OSType as we known it today. Instead a list
  4738. of numerical constants was used, like:
  4739.  
  4740.      zVersion    = $1;   { Gestalt Version }
  4741.      zMachType   = $100; { machine type }
  4742.      zSystemVers = $101; { system file version }
  4743.  
  4744. and nine others.
  4745. But the principle used with todays Gestalt routine was there: request one
  4746. specific piece of information and you'll get it. Nothing more and nothing
  4747. less. Back then it wasn't the Gestalt Manager since there was only one
  4748. routine. Both the NewGestalt and the ReplaceGestalt did not exist.
  4749. In June 1992 (released in February 1993?) three new functions were added
  4750. to the Gestalt Manager: NewGestaltValue, ReplaceGestaltValue,
  4751. DeleteGestaltValue and SetGestaltValue.
  4752.  
  4753. Abbreviations
  4754. -------------
  4755. A/UX     - Apple UNIX
  4756. ADB      - Apple Desktop Bus
  4757. AMU      - Apple Memory Unit?
  4758. ARTA     - Apple Real Time Architecture
  4759. AS       - AppleShare
  4760. ASC      - Apple Sound Chip
  4761. ASCII    - American Standard Code for Information Interchange
  4762. ASIC     - Application Specific Integrated Circuit
  4763. ATA      - ??? (ATA Mgr, for IDE drive support)
  4764. AURP     - AppleTalk Update-based Routing Protocol
  4765. AWAC     - Audio Waveform Amplifier and Converter
  4766. Caboose  - processor that manages the keyswitch, system power,
  4767.            the real-time clock, and parameter RAM
  4768. CDEF     - Control DEFinition (code resource)
  4769. CISC     - Complex Instruction Set Computer (compare with RISC)
  4770. CLUT/DAC - color look-up table and digital-to-analog converter IC
  4771. Combo    - chip, combines the functions of the SCC and the SCSI controller
  4772. CPU      - Central Processing Unit
  4773. Cuda     - ASIC that implements the ADB, PRAM and Soft Power on more
  4774.            recent Macs. Apperantly this IC will (or already does?) emulate
  4775.            the IBM keyboard controller also.
  4776. Cyclops  - IC to control remote control receiver.
  4777. DAFB     - Direct Access Frame Buffer
  4778. DAV      - Digital Audio Video (connector)
  4779. DDC      - Display Driver Chip
  4780. DESC     - Digitale Video Decoder and Scaler
  4781. DFAC     - Digitally Filtered Audio Chip
  4782. DITL     - Dialog ITems List (resource)
  4783. DLL      - Dynamically Linkable Library
  4784. DMA      - Direct Memory Access
  4785. DN       - Developer Note
  4786. DOS      - Disk Operating System (to run a computer???)
  4787. DRAM     - Dynamic RAM
  4788. DSP      - Digital Signal Processor
  4789. EASC     - Enhanced Apple Sound Chip
  4790. FAT      - File Allocation Table?
  4791. FMC      - Fitch Memory Controller
  4792. FPU      - Floating Point Unit
  4793. GDEF     - Gestalt DEFinition (code resource)
  4794. GPi      - General Purpose Input
  4795. IDE      - Integrated Device Electronics
  4796. IIC      - Inter-Integrated Circuit, standard bus for talking to TV related
  4797.            chips using a 3-wire signal.
  4798. IM       - Inside Macintosh
  4799. IOP      - Input/Output Processor
  4800. IWM      - Integrated Woz Machine
  4801. Jaws     - ???
  4802. JDB      - Junction Data Bus
  4803. JMC      - Jaws Memory Controller
  4804. MacOS    - Macintosh Operating System
  4805. MCU      - Memory Control Unit
  4806. MAE      - Macintosh Application Environment (Mac system on UNIX RISC)
  4807. MEO      - Macintosh Easy Open
  4808. MMU      - Memory Management Unit
  4809. NBP      - Name Binding Protocol
  4810. NTSC     - National Television Standards Comittee
  4811.            (standard broadcast TV in North America and Japan)
  4812. OCE      - Open Colloboration Environment
  4813. OMC      - Orwell Memory Controller
  4814. OS       - Operating System
  4815. OSA      - Open Scripting Architecture:
  4816.            OSA is the Open Scripting Architecture. It is the layer upon
  4817.            which all scripting languages sit and the method by which
  4818.            applications call scripts. (Jon Pugh)
  4819. OSL      - Object Support Library
  4820. OSS      - Operating System Support chip
  4821. PAL      - Phase Alternating Line system
  4822.            (standard broadcast TV in most of Europe, South America, and
  4823.             southern Asia)
  4824. PB       - PowerBook
  4825. PCI      - Peripheral Component Interconnect bus
  4826. PDS      - Processor-Direct Slot
  4827. PGC      - Parity Generator Chip
  4828. PMMU     - Paged Memory Management Unit
  4829. PSRAM    - Pseudo Static RAM
  4830. PPC      - Process-to-Process Communication, also:
  4831.            PowerPC
  4832. PRAM     - Parameter RAM
  4833. ProDOS   - Professional Disk Operating System? (OS for the Apple ][)
  4834. PWM      - Pulse-Width Modulated?
  4835. QD       - QuickDraw
  4836. RAM      - Random Access Memory (see DRAM & SRAM, compare ROM)
  4837. RAMDAC   - Random Access Memory, Digital/Analog Converter
  4838. RBV      - RAM-Based Video
  4839. RISC     - Reduced Instruction Set Computer (compare with CISC)
  4840. ROM      - Read Only Memory
  4841. RSB      - Ram Based Sound
  4842. RTC chip - Real-Time Clock chip
  4843. RPU      - Random Parity Unit
  4844. SANE     - Standard Apple Numerics Environment
  4845. SCC      - Serial Communications Controller
  4846. SCSI     - Small Computer System Interface
  4847. SDP      - Standard Directory Package
  4848. SECAM    - standard broadcast TV in France and the former Soviet
  4849. SIMM     - Single In-line Memory Module
  4850. SMP      - Standard Mailer Package
  4851. SOM      - System Object Model
  4852. Sonic    - chip for built-in Ethernet
  4853. Sporty   - a custom IC that provides sound output amplification functions
  4854. SRAM     - Static RAM
  4855. SWIM     - Super-Wozniak Integrated Machine
  4856. TE       - TextEdit (32Kb limited built-in text-engine)
  4857. TN       - Technical Note
  4858. TTS      - Text-To-Speech
  4859. Valkyrie - IC containing the video display control
  4860. VDAC     - Video Digital to Analog Converter
  4861. VIA      - Versatile Interface Adapter
  4862. VM       - Virtual Memory
  4863. VRAM     - Video RAM
  4864. YANCC    - Yet Another NuBus Controller Chip
  4865.  
  4866. Sources
  4867. -------
  4868. A    Apple Computer, Inc.
  4869. AD    Documentation & Magazines
  4870. AD01   MacTCP Programmer's Guide
  4871. AD02   AppleTalk Remote Access API External Reference Specification
  4872. AD03   Macintosh Easy Open programmer's docs
  4873. AD04   Thread Manager 1.1 and 2.0 documentation
  4874. AD05   Drag Manager Programmer's Guide
  4875. AD06   Sound Manager Tech Note on BookMark CD 16
  4876. AD07   D e v e l o p 17, p. 123
  4877. AD08   MAE Compatibility Hints
  4878. AD09   Color Matching documentation on ETO 14 and BookMark 18
  4879. AD10   OS Compatibility doc on WWDC 1994 CD
  4880. AD11   IM PPC System Software
  4881. AD12   IM OS Utilities
  4882. AD13   D e v e l o p 19, p. 105
  4883. AD14   File System Manager Guide, Sep. 1994
  4884. AD15   Apple Remote Access API, part of Mac OS SDK
  4885. AD16   Apple Guide Authoring Kit
  4886. AD17   IM Advanced Color Imaging (Draft)
  4887. AD18   Apple Tech Info Library (http://www.info.apple.com/til.html)
  4888. AD19   Macintosh Programmer's Toolbox Assistant (Online Reference)
  4889. AD20   IM Sound
  4890.  
  4891. Inside Macintosh can be found at:
  4892. http://www.austin.apple.com:80/cgi-bin/lister-pl?Apple.Support.Area/Developer_Services/Technical_Documentation/Inside_Macintosh
  4893.  
  4894. Sample Code can be found at:
  4895. http://www.austin.apple.com:80/cgi-bin/lister-pl?Apple.Support.Area/Developer_Services/Sample_Code
  4896.  
  4897. Information on D e v e l o p Magazine can be found at:
  4898. http://www.austin.apple.com:80/cgi-bin/lister-pl?Apple.Support.Area/Developer_Services/Periodicals/develop
  4899.  
  4900. AS    Software, source code & header files
  4901. AS01   QuickTime ImageCompression source files
  4902. AS02   CommToolbox 1.1 source files
  4903. AS03   MPW Interface files on Bookmark CD 14
  4904. AS04   GestaltEqu header file on ETO 12
  4905. AS05   GestaltEqu header file on ETO 13
  4906. AS06   GestaltEqu header file on BookMark CD 17
  4907. AS07   TSMTE header file on BookMark CD 17
  4908. AS08   AppleScript header file on ETO 14
  4909. AS09   Drag header file on ETO 14
  4910. AS10   XTNDInterface header file on ETO 14
  4911. AS11   ControlStrip header file on BookMark CD 19
  4912. AS12   AppleGuide header file on BookMark CD 18
  4913. AS13   Macintosh on RISC SDK (also on CodeWarrior CD)
  4914. AS14   Gestalt header file as part of Universal Interfaces 2.0a1
  4915. AS15   GestaltEqu header file for ETO 16 (on CodeWarrior 5 CD)
  4916. AS16   PPCToolbox.p header file on CodeWarrior 5 CD
  4917. AS17   Several header files on ETO 16
  4918. AS18   Open Transport Client Note on the Mac OS SDK #2 CD
  4919.  
  4920. AT    Technical Notes
  4921. AT01   TN M.OV.GestaltSysenvirons (OV 16), May 1987/Rev. Feb. 1995
  4922. AT02   TN M.NW.AppleTalk2 (NW 13), Feb.1992
  4923. AT03   TN M.DV.CD-ROMDriver (DV 22), May 1993
  4924. AT04   TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
  4925. AT05   TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
  4926. AT06   TN OS 05 - System Update 3.0, July 1993/Rev. May 1994
  4927. AT07   TN M.DV.CuriousSCSI, May 1994
  4928. AT08   TN OS 06 - Control Strip Modules, July 1994/Rev. Sep. 1994
  4929. AT09   TN M.ME.VMMemoryMapping (TN-Memory), July 1987/Rev. March 1988
  4930. AT10   TN M.PT.A/UX.Q&As, Oct. 1990/Rev. Sep. 1993 
  4931. AT11   TN M.QD.ColorQD Q&As, April 1990
  4932. AT12   TN OS 07 - System 7.5 Update 1.0, February 1995
  4933.  
  4934. The Technical Notes can be found at:
  4935. http://www.austin.apple.com:80/cgi-bin/lister-pl?Apple.Support.Area/Developer_Services/Technical_Documentation/Mac_Tech_Notes
  4936.  
  4937. S    Symantec Corp.
  4938. S01    THINK Pascal 4.0 interface files
  4939. S02    THINK C GestaltGlue source files
  4940. S03    THINK Reference 1.0 and 2.0
  4941.  
  4942. M    Miscellaneous sources
  4943. M01    Gestalt DA 0.4 1990 (Carl C.Hewitt)
  4944. M02    Gestalt dcmd 1.0 (Eric Simenel, Apple Computer France)
  4945. M03    sysvINIT source files (Apple Computer Japan, Inc.)
  4946. M04    TMON Professional Reference Manual, p.192 (ICOM Simulations)
  4947. M05    AfterDarkGestalt.h file (Berkeley Systems, Inc.)
  4948. M06    SoftwareFPU Programmer Info (John Neil & Associates)
  4949. M07    GestaltZeigen (Kevin B. Hardman)
  4950.  
  4951. Definitions and Format
  4952. ======================
  4953. This chapter explains where the word 'Gestalt' comes from, a few things
  4954. are defined and it explains how each selector code entry looks like.
  4955.  
  4956. Use in Language
  4957. ---------------
  4958.  
  4959. **WEBSTER'S DICTIONARY**
  4960. ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
  4961. \-<\e>n\ or gestalts (1922)
  4962.   [G, lit., shape, form]
  4963.   :a structure, configuration, or pattern of physical, biological, or
  4964.   psychological phenomena so integrated as to constitute a functional unit
  4965.   with properties not derivable by summation of its parts.
  4966.  
  4967.   (Try this one: http://www.fwi.uva.nl/htbin/webster.cgi?gestalt)
  4968.  
  4969. **GERMAN-DUTCH DICTIONARY**
  4970. Gestalt w [-en]
  4971.   stature, figure, form; Ritter von der Traurigen -, knight of the
  4972.   sorrowful figure.
  4973.  
  4974. Definitions
  4975. -----------
  4976.  
  4977. **APPLE SOFTWARE**
  4978. This category includes all selectors installed by software published by
  4979. Apple Computer, Inc.
  4980. Inside Macintosh says this about them:
  4981.      "Apple reserves for its own use all four-character sequences
  4982.       consisting solely of lowercase letters and non alphabetic ASCII
  4983.       characters".
  4984. It includes all selectors of the next two categories:
  4985.       
  4986. **APPLE SYSTEM SOFTWARE**
  4987. This category includes all selectors installed by System Software from
  4988. Apple Computer, Inc.
  4989.  
  4990. **APPLE ADDITIONAL SOFTWARE**
  4991. These are selectors installed by additional, non-system, software from
  4992. Apple Computer, Inc.
  4993.  
  4994. **THIRD PARTIES SOFTWARE**
  4995. These are selectors installed by software from parties other than Apple
  4996. Computer, Inc.
  4997. Inside Macintosh says about these:
  4998.      "If you have registered a creator string with Apple, you are
  4999.       strongly encouraged to use that sequence as your selector code".
  5000. This type of selectors is included in this list with the motto "If you
  5001. don't know they are there, you can't do anything with them".
  5002. Especially the Third Party selectors may change with every new release and
  5003. are therefore only listed in the 'known selectors' part when the author has
  5004. described the structure in the documentation or by email to me. These
  5005. selectors don't have a high priority but when possible I want to know at
  5006. least which software installs it to exclude it as a possible
  5007. "Apple selector".
  5008. Some people at Apple also differentiate between commercial developers and
  5009. others, as being "third" and "fourth" parties respectively. But with this
  5010. list this is not the case.
  5011.  
  5012. Format Selector Entry
  5013. ---------------------
  5014. Format used to display information about each selector:
  5015.  
  5016. selector_code (Software_name & type [since_version], by company/author)
  5017.      constant_name
  5018.      description
  5019.  
  5020.      const
  5021.      declaration; {remark *ref.number_to_source}
  5022.  
  5023.      NOTE and/or WARNING:
  5024.  
  5025. Where the type is one of:
  5026. app  application (APPL)
  5027. cp   control panel (cdev)
  5028. ext  extension (INIT/appe/RDEV etc.)
  5029.  
  5030. Example:
  5031.  
  5032. COLA (Sugarwater ext [1.0] by John Sculley)
  5033.      gestaltSugarwaterVersion
  5034.      Returns version of Sugarwater as NumVersion.
  5035.  
  5036.      const
  5037.      gestaltSugarwaterVersion = 'COLA'; *AB01
  5038.  
  5039.      WARNING: This example is fictitious.
  5040.  
  5041.      NOTE:
  5042.      Sugarwater? See the book 'West of Eden, The End of Innocence at
  5043.      Apple' by Frank Rose.
  5044.  
  5045. Most selectors are listed as four characters, if there are only two or
  5046. three characters displayed the remainder are spaces (or it's a typo!).
  5047. Diacritical characters are shown in the most logical normal character and
  5048. at the end of the entry a note is included about which key-combination to
  5049. press with a normal International system and US keyboard layout to get the
  5050. required diacritical character and also listed is its hexadecimal code.
  5051. When 'INF' is at the end of the first line it means it is an informational
  5052. selector, all others are environmental selectors.
  5053. The source reference number may also be used in other places than indicated
  5054. above. It then applies to other parts of the entry or to the whole entry.
  5055. A single question mark indicates an uncertainty regarding the information
  5056. in front of the question mark. Three question marks indicate complete
  5057. absence of the information.
  5058. Some symbolic names may not originate from official publications.
  5059.  
  5060. Symbolic Names Suffixes
  5061. -----------------------
  5062. The last characters of the symbolic names form a suffix which indicates
  5063. the type of the returned value. Below is a table which lists the different
  5064. types of suffix and their meaning.
  5065.  
  5066. ===========================================================================
  5067. Symbolic Names Suffixes
  5068. ===========================================================================
  5069. Suffix                   Meaning
  5070. ---------------------------------------------------------------------------
  5071. Addr                     Value is an address, i.e. to the base address of
  5072.                          a memory-mapped device or to a function in
  5073.                          memory.
  5074. Attr                     Value is a range of 32 bits (0 is the least
  5075.                          significant bit), must compare with list of
  5076.                          constants and use BitTst or similair. Sometimes
  5077.                          it is a bitmask, then use BitAnd.
  5078. Count                    Value is a number indicating how many of the
  5079.                          indicated type exist.
  5080. Icon                     Value is the resource ID of an icon.
  5081. Size                     Value is a size, usually in bytes.
  5082. Table                    Value is the base address of a table.
  5083. Type                     Value is an index to map to a version or name.
  5084. Version                  Value is a version number. See the section
  5085.                          'Format Version Numbers' below, for a list of
  5086.                          different formats of version numbers.
  5087. <none>                   If there is no suffix like the ones above, the
  5088.                          presence of the selector only implies the
  5089.                          software which installed the selector is present.
  5090.                          The returned value is then private to the
  5091.                          installee.
  5092. ---------------------------------------------------------------------------
  5093.  
  5094. Format Version Numbers
  5095. ----------------------
  5096. BCD (Binary Coded Decimal)
  5097.      $0x0402 means 4.0.2.
  5098.  
  5099. INTEGER
  5100.      The decimal representation of the returned value in the low-byte is
  5101.      the version.
  5102.  
  5103. Double BCD (my own fantasy name..., Ed.)
  5104.      $00010108 means 1.1.8.
  5105.  
  5106. NumVersion
  5107.      The format of the LongInt response can be coerced into type NumVersion,
  5108.      which is the same format as used for the 'vers' resource type.
  5109.  
  5110.      type
  5111.       NumVersion = packed record
  5112.        case INTEGER of
  5113.         0: (majorRev: SignedByte;  {1st part of version number in BCD}
  5114.             minorRev: 0..9;        {2nd part is 1 nibble in BCD}
  5115.             bugFixRev: 0..9;       {3rd part is 1 nibble in BCD}
  5116.             stage: SignedByte;     {stage code: dev, alpha, beta, final}
  5117.             nonRelRev: SignedByte);{revision level of non-released version}
  5118.         1: (version: LONGINT);     {to use all 4 fields at one time}
  5119.        end;
  5120.  
  5121.      stage is one of: $20 = development
  5122.                       $40 = alpha
  5123.                       $60 = beta
  5124.                       $80 = final
  5125.  
  5126. About this list
  5127. ===============
  5128. The Gestalt Manager is a collection of system routines which allows
  5129. applications to test for the availability of software and hardware. Because
  5130. of the increasing number of different software and hardware configurations,
  5131. this is getting an important issue. It probably already is and known by the
  5132. term 'compatibility'.
  5133. The Gestalt function allows applications to obtain information about the
  5134. current configuration. Selectors are used to refer to certain information.
  5135. A selector is of type OSType (a four byte value) and usually contain four
  5136. ASCII characters. For example: the selector 'sysv' causes the version of
  5137. the current system is returned. Other functions, NewGestalt and
  5138. ReplaceGestalt, allow programmers to install their own Gestalt selectors.
  5139. Programmers need to know these selectors beforehand to be able to request
  5140. and interpret the value returned by the Gestalt function.
  5141. See for more detailed information on how to use the Gestalt Manager
  5142. routines Inside Macintosh part VI (old series). The new Inside
  5143. Macintosh: Operating System Utilities replaces IM VI.
  5144. The Driver Gestalt calls (status calls to device drivers) are not covered
  5145. by this list.
  5146. When you already have one or more of the new IM issues you may be a bit
  5147. disappointed. I was, because of the very minimal information provided
  5148. regarding the availability of the system routines. Of most routines you
  5149. will find no information on how to test their availability.
  5150.  
  5151. This Gestalt Selectors List intends to list all known selectors, but in
  5152. reality this means it lists all selectors known to the editor.
  5153. I would like to see this list to be a combined effort by different persons
  5154. who have together access to a wide area of information.
  5155. This list may contain (educated?) guesses and perhaps even false
  5156. information, so no guarantee is made about the contents.
  5157. You may use this information freely (see Legal Stuff section below), but
  5158. when you find information not included with this list; please tell me. If
  5159. you have additions, corrections, comments, suggestions, news about
  5160. available software, etc., mail it me. Please, also mention the source you
  5161. used, if any.
  5162. You can send contributions, remarks, etc. to this email address:
  5163.     gestalt-selectors-list@bio.vu.nl
  5164. If you want to remain anonymous, please mention this and it will be taken
  5165. care of.
  5166. I don't have all the documentation or knowledge and I don't want to, and
  5167. I'am certainly not Mr.Gestalt.
  5168.  
  5169. Availability
  5170. ------------
  5171. If you downloaded this list from CompuServe, a BBS, or any other service,
  5172. you will notice some strange things like 'FTP-sites' which have to do
  5173. with the fact that this list originates from INTERNET.
  5174. You can access the mail archive server also from CompuServe, AOL and
  5175. AppleLink. Contact your network provider for information on how to send
  5176. email to an INTERNET site.
  5177.  
  5178. This list is available in the following ways:
  5179.  
  5180. **INTERNET**
  5181.  
  5182. USENET newsgroup comp.sys.mac.programmer (C.S.M.P.)
  5183. This list has become too large to post to C.S.M.P., so starting from
  5184. version 2.2 this list is no longer posted there. Instead an announcement
  5185. will be posted to some c.s.m.p. subgroups (help, info, misc and tools)
  5186. informing were you can find the latest version.
  5187.  
  5188. FTP-SITE
  5189. sumex-aim.stanford.edu [36.44.0.6]
  5190. Every minor and major version is submitted to the info-mac archives:
  5191.  
  5192. ftp://sumex-aim.stanford.edu/info-mac/dev/info/gestalt-selectors-28.hqx
  5193.  
  5194. It is also available on its mirror sites.
  5195.  
  5196. Contact: Info-Mac Moderator (info-mac-request@sumex-aim.stanford.edu)
  5197.  
  5198. FINGER
  5199. Using Finger to obtain the latest version is no longer possible.
  5200.  
  5201. WWW
  5202. Vrije Universiteit
  5203.      The GSL can be found behind the home page of the editor:
  5204.  
  5205.      http://www.bio.vu.nl/home/rgaros/
  5206.  
  5207.      or directly at:
  5208.  
  5209.      http://www.bio.vu.nl/home/rgaros/gestalt/
  5210.  
  5211.      Both pages are still under construction. The GSL is converted from
  5212.      setext to html using a Perl script, corrected and adapted by
  5213.      Hans Verbrugge.
  5214.  
  5215.      Contact: Rene G.A. Ros (rgaros@bio.vu.nl)
  5216.      HTML   : Hans Verbrugge (hverbrug@inter.nl.net)
  5217.  
  5218. Northwestern University
  5219.      The GSL is also available for World Wide Web users together with other
  5220.      Macintosh FAQs at:
  5221.  
  5222.      http://www.astro.nwu.edu/lentz/mac/faqs/source/gestalt.html
  5223.  
  5224.      Contact: Robert Lentz (lentz@annie.astro.nwu.edu)
  5225.  
  5226. **AMERICA ONLINE (AOL)**
  5227.  
  5228. You can find the GSL on AOL in the "MDV/Documents and Proposals" directory.
  5229.  
  5230. Contact: Jonathan Kleid (SonOfaBitS@aol.com)
  5231.  
  5232. **APPLELINK**
  5233.  
  5234. The GSL will become available on AppleLink soon. Location is yet unknown.
  5235.  
  5236. **COMPUSERVE**
  5237.  
  5238. Starting with version 2.0 this list is uploaded to the Macintosh Developers
  5239. Forum (MACDEV). Only new minor and major versions will be uploaded once. It
  5240. then appears in the Forum Business/Help (1) or Tools/Debuggers (13) section
  5241. (the Forum Sysops seem to disagree on where it belongs...)
  5242.  
  5243. **GENERAL**
  5244.  
  5245. CD-ROM or BBS
  5246. Because of permissions I granted you may get this list from a CD-ROM or via
  5247. a BBS from Internet, CompuServe or a CD-ROM. If you do, and the release was
  5248. more than two months ago, there is probably already a newer version.
  5249. You can find the GSL on these CD-ROM titles:
  5250.  
  5251. Apprentice CD-ROM                    (Celestin Company)
  5252. BBS in a BOX CD-ROM                  (Arizona Macintosh Users Group)
  5253. Bookmark CD                          (Apple Computer, Inc.)
  5254. Developer CD Series, Tool Chest      (Apple Computer, Inc.)
  5255. Info-Mac CD-ROM                      (Pacific HiTech, Inc.)
  5256. The Right Stuffed CD-ROM             (Quantum Leap Technologies, Inc.)
  5257.  
  5258. MAILING LIST
  5259. Every person on the mailing list automatically receives an update by email
  5260. whenever there are some changes. If you want to subscribe or unsubscribe to
  5261. this mailing list you need to send an email to this address:
  5262.      gestalt-selectors-list-request@bio.vu.nl
  5263. Then put in the subject line either 'subscribe' or 'unsubscribe'.
  5264.  
  5265. The mailing list is moderated, which means everybody can email to:
  5266.     gestalt-selectors-list@bio.vu.nl
  5267. But only after approval of the moderator the other subscribers will receive
  5268. your posting. This guarantees that no confidential contribution is
  5269. distributed before the moderator sees it.
  5270. If mail to you bounces four times you're automatically unsubscribed.
  5271.  
  5272. This service is only possible to those who have an account on Internet or
  5273. any other network reachable from Internet (CompuServe, AOL, AppleLink,
  5274. Fidonet). I can not provide mailing of printed versions or on disk by
  5275. normal surface mail.
  5276.  
  5277. MAIL ARCHIVE SERVER
  5278. You can retrieve the latest versions of this list and other software
  5279. by sending an email to this address:
  5280.      gestalt-selectors-list-request@bio.vu.nl
  5281. In the subject line you need to enter 'archive' and then put one command
  5282. behind it or only 'archive' in the subject line with one of more commands
  5283. in the body of your email preceded by the keyword 'archive'. These commands
  5284. can be:
  5285.      help             to get some help on using the archive server
  5286.      ls <dir>         to list the contents of the specified directory
  5287.      get <dir>/<file> to have the specified file sent to you by email.
  5288. To obtain the abstracts of all files available you can use this command:
  5289.      archive get ABSTRACTS
  5290.  
  5291. Your actions may be logged.
  5292.  
  5293. PRINTED
  5294. If you want this list printed on paper you may want to try a feature
  5295. included with the LaserWriter 8 software. With it you can print four
  5296. pages on a single sheet of paper. When you set the page breaks correct,
  5297. this produces a very neat, little booklet.
  5298.  
  5299. Acknowledgements
  5300. ----------------
  5301. I want to thank the following persons for their contributions and
  5302. support of this list:
  5303.  
  5304. ===========================================================================
  5305. Name                                       Internet Email Address
  5306. ---------------------------------------------------------------------------
  5307. Anonymous contributor(s)                   anonymous@secret.cia
  5308. Lonnie R. Abelbeck                         abelbeck@dev.abelbeck.com
  5309. Daniel Azuma                               dazuma@cco.caltech.edu
  5310. J.D. Sterling Babcock                      jdsb@ee.duke.edu
  5311. John W. Baxter                             jwbaxter@pt.olympus.net
  5312. Martin Bestmann                     kruemel@theorie3.physik.uni-erlangen.de
  5313. Mason L. Bliss                             mason@cis.umassd.edu
  5314. Scott Bronson                              urge@mcl.mcl.ucsb.edu
  5315. Jim Browne                                 jbrowne@ncsa.uiuc.edu
  5316. Richard Buckle                             richardb@cocytus.demon.co.uk
  5317. Ivan M Cavero Belaunde                     ivanski@world.std.com
  5318. John Champion                              denali@metronet.com
  5319. Mike Cohen                                 isis@netcom.com
  5320. Marc Cooperman                             coopem@panix.com
  5321. Mark Dawson                                marc@apple.com
  5322. Lawrence D'Oliveiro                        ldo@waikato.ac.nz
  5323. Alex Dosher (Developer CD Leader), Apple Computer, Inc.
  5324.                                            Alex_Dosher@quickmail.apple.com
  5325. Dave Falkenburg, Apple Computer Inc.       falken@apple.com
  5326. Andy Fyfe                                  andy@bandr.vip.best.com
  5327. Rick Gansler                               gansler@boardwalk.tiac.net
  5328. M. David Greenspon                         gremicf@yalevm.ycc.yale.edu
  5329. C.K. Haun                                  haun@apple.com
  5330. Michael Hecht                              Michael_Hecht@mac.sas.com
  5331. Robert Hess                                robert_hess@macweek.ziff.com
  5332. Bill Hofmann                               wdh@netcom.com
  5333. Mark B. Johnson                            mjohnson@apple.com
  5334. Jonathan Kleid                             SonOfaBitS@aol.com
  5335. Rich Kubota, Apple Computer Inc.           Rich_Kubota@quickmail.apple.com
  5336. Roy Leban, Akimbo Systems                  RoyLeban@akimbo.com
  5337. David B. Lamkins                           dblamkins@aol.com
  5338. Robert Lentz                               lentz@annie.astro.nwu.edu
  5339. David Lewis                                lewis@netcom.com
  5340. Spencer Low                                spencerl@crl.com
  5341. John Mancino, Decision Maker's Software    mancino@decismkr.com
  5342. Roland Mansson                             roland.mansson@ldc.lu.se
  5343. Matsubayashi Kohji                         matubays@ics.es.osaka-u.ac.jp
  5344. Duane Murphy, Novell Inc.                  damurphy@wc.novell.com
  5345. Mark Nagata                                nagata@kurims.kyoto-u.ac.jp
  5346. Fabrizio Oddone                            gspnx@di.unito.it
  5347. Carl R. Osterwald                          cro@br213mail.nrel.gov
  5348. Marco Piovanelli                           piovanel@ghost.dsi.unimi.it
  5349. Kees Pols                                  kpols@bio.vu.nl
  5350. Francois Pottier                           pottier@clipper.ens.fr
  5351. Ken Prehoda                                kenp@nmrfam.wisc.edu
  5352. Jon Pugh                                   jonpugh@netcom.com
  5353. Quinn "The Eskimo!"                        quinn@cs.uwa.edu.au
  5354. Dave Radcliffe, Apple Computer Inc.        radcliff@apple.com
  5355. Eric-Paul Rebel                            eprebel@knoware.nl
  5356. Thomas Reed                                reed@telesphere.wustl.edu
  5357. Pete Resnick                               resnick@cogsci.uiuc.edu
  5358. Paul Reznick                               PRzeznik@aol.com
  5359. Alex Rosenberg, Apple Computer Inc.        alexr@apple.com
  5360. Leonard Rosenthol                          leonardr@netcom.com
  5361. Jeremy Roussak                             jeremyr@dcs.qmw.ac.uk
  5362. Ray Sanders                                72511.232@CompuServe.COM
  5363. Eric Schlegel, Microsoft Corporation       ericsc@microsoft.com
  5364. Marc Schrier                               schrier@garnet.berkeley.edu
  5365. Mark Simmons                               72511.256@CompuServe.COM
  5366. Patrick Stadelmann                    Patrick.Stadelmann@etudiants.unine.ch
  5367. Brian Stern                                Jaeger@fquest.com
  5368. Zalman Stern                               zalman@adobe.com
  5369. Tim Swihart                                tim_swihart@quickmail.apple.com
  5370. Ilan Szekely                               ILANS@ds.huji.ac.il
  5371. Victor Tan                                 victort@extro.ucc.su.oz.au
  5372. Rodrigo Torres, Berkeley Systems           brklysystm@aol.com
  5373. John Tsombakos                             johnts@iii.net
  5374. Hans Verbrugge                             hverbrug@inter.nl.net
  5375. John Watte                                 h+@metrowerks.com
  5376. Jos van Wezel                              wezel@bio.vu.nl
  5377. Jonathan Wilson                            toast@diss.hyphen.com
  5378. Chris Wysocki                              wysocki@netcom.com
  5379. ---------------------------------------------------------------------------
  5380.  
  5381. And the members of the Computer Department of the Biology Faculty at the
  5382. Vrije Universeit in Amsterdam, The Netherlands for their help and support.
  5383. Also special thanks to Marco Piovanelli for his support and comments about
  5384. preliminary versions and updates.
  5385.  
  5386. The persons mentioned above provided information used in this list. They
  5387. did this on personal title, NOT on behalf of their employer, unless
  5388. explicitly stated otherwise.
  5389. I assume information you mail to me about Gestalt selectors may be used in
  5390. this list. Information made available to the general public (e.g. a posting
  5391. to a USENET newsgroup) is also included and the persons name added to this
  5392. section (and to the mailing list).
  5393. I will mail you back to thank you and include the parts from the list which
  5394. were changed, according to the information you provided, to let you check
  5395. them.
  5396.  
  5397. Legal Stuff
  5398. -----------
  5399. (c) 1992-1995, Rene G.A. Ros
  5400.  
  5401. **NOTICE OF LIABILITY**
  5402. The information in this list is distributed on an "AS IS" basis, without
  5403. warranty. While every precaution has been taken in the preparation of this
  5404. list, neither the editor nor any contributor nor any publisher, providing
  5405. this list on any type of media, shall have any liability to any person or
  5406. entity with respect to any liability, loss, or damage caused or alleged to
  5407. be caused directly or indirectly by the information contained in this list
  5408. or by the computer software and hardware products described herein.
  5409. In addition it should be noted explicitly this list is NOT a product of
  5410. Apple Computer Inc., like any other publisher, NOR are they responsible for
  5411. any problems you may encounter in its use. Apple Computer Inc. distributes
  5412. this list on a "AS-IS" basis.
  5413.  
  5414. **TRADEMARKS**
  5415. Throughout this list trademarked names are used. Rather than put a
  5416. trademark symbol in every occurrence of a trademarked name, I state I am
  5417. using the names only in an editorial fashion and to the benefit of the
  5418. trademark owner with no intention of infringement of the trademark.
  5419.  
  5420. **USE AND DISTRIBUTION**
  5421. The information in this list may be used freely, but is NOT public domain.
  5422. When you use the information in this list for COMMERCIAL purposes, you may
  5423. consider sending the editor a donation to help pay in the costs.
  5424.  
  5425. It is not allowed to use excerpts of this list with your documentation, or
  5426. in any other way, without giving proper credit by using this line:
  5427. "This documentation lists information provided by the Gestalt Selectors
  5428. List, edited and maintained by Rene G.A. Ros (Internet: rgaros@bio.vu.nl)"
  5429. If you use excerpts you are advised to subscribe to the mailing list to be
  5430. notified about errors and the latest news.
  5431.  
  5432. The GSL may not be distributed outside any computer network (for example,
  5433. but not limited to, printed, on disk or CD-ROM) unless you have contacted
  5434. the editor, prior to publication, and received permission to do so. This is
  5435. mainly to ensure you have the latest version. The updates may not be
  5436. distributed, these are ONLY for the persons on the mailing list.
  5437.  
  5438. Permission for distribution of the full list is granted to:
  5439. Aladdin Systems                      (InstallerMaker software)
  5440. Apple Computer, Inc.                 (Developer CD Series, Bookmark CD)
  5441. Arizona Macintosh Users Group        (BBS in a BOX CD-ROM)
  5442. Celestin Company                     (Apprentice CD-ROM)
  5443. Club Macintosh de Quebec
  5444. CP Shareware
  5445. IDG Communications Nederland         (MacWorld CD-ROM)
  5446. Pacific HiTech, Inc.                 (Info-Mac CD-ROM, Umich CD-ROM)
  5447. Quantum Leap Technologies, Inc.      (The Right Stuffed CD-ROM)
  5448.  
  5449. Distribution of modified versions of this list, including, but not limited
  5450. to, deleting, adding or moving text or adding non-text parts, is not
  5451. allowed. Distribution in any electronical format except a normal (or
  5452. compressed) text file is not allowed without permission.
  5453. You are not allowed to redistribute the GSL with any other name than
  5454. 'gestalt-selectors-XX.YYY'  or 'Gestalt Selectors List X.X' for a plain
  5455. text file format (where XX or X.X is the version number and YYY the suffix
  5456. to indicate compression etc.), unless because of technical reasons. In such
  5457. case a name should be chosen which resambles it as closely as possible to
  5458. avoid possible confusion.
  5459.  
  5460. Editor's Address
  5461. ----------------
  5462. Rene G.A. Ros
  5463. student Computer Science (fulltime),
  5464.        Hogeschool van Amsterdam (Institute of Technology)
  5465.        currectly at Compuware Computing in Amsterdam (formerly known as
  5466.        Uniface B.V.) for industrial training.
  5467. consultant to the Computer Department,
  5468.        Biology Faculty, Vrije Universiteit Amsterdam
  5469. contract programmer Pascal and C, also 4th Dimension and other data-bases
  5470.  
  5471. D.C. van Krimpenstraat 3
  5472. 1067 SG  Amsterdam-Geuzenveld
  5473. The Netherlands, Europe
  5474.  
  5475.  
  5476. Internet  : rgaros@bio.vu.nl (preferred)
  5477.             rener@uniface.nl
  5478.             rgaros@nikhefk.nikhef.nl
  5479.             rgaros@htsa.hva.nl (till september 1995)
  5480.             rgaros@dds.nl
  5481. CompuServe: >INTERNET: rgaros@bio.vu.nl
  5482.             100112,1363
  5483.  
  5484. Mailing list:
  5485. Internet    contributions:
  5486.             gestalt-selectors-list@bio.vu.nl
  5487.  
  5488.             to subscribe/unsubscribe and for the archive server:
  5489.             gestalt-selectors-list-request@bio.vu.nl
  5490.  
  5491. CompuServe  contributions:
  5492.             >INTERNET: gestalt-selectors-list@bio.vu.nl
  5493.  
  5494.             to subscribe/unsubscribe and for the archive server:
  5495.             >INTERNET: gestalt-selectors-list-request@bio.vu.nl
  5496.  
  5497. Please contact me at the INTERNET address. I read my mail there almost
  5498. daily, while I log on to CompuServe only once or twice a month.
  5499.